这题怎么破?

n
nazaban
楼主 (北美华人网)
I
IsabellaQ
广度优先?最多两遍
c
carolena
菜鸟来猜一下,因为要删除,所以类似于binary tree 分治,从leaf向上找/删?
s
sayunyan
瞎想可以用O(n) space的话,traverse复制一下整个树,但是每个node加上两个新的field Node parent; boolean keep; 然后从set的每一个成员开始做DFS,traverse到的parent和sibling的keep = true 最后从root开始prune 就是这样时间上要跑三遍,但没什么时间考虑的话我大概就会这么做