题目
解答
classFindElements{Set<Integer>set=newHashSet<>();publicFindElements(TreeNoderoot){if(root==null){return;}LinkedList<TreeNode>queue=newLinkedList<>();queue.add(root);root.val=0;while(!queue.isEmpty()){TreeNodenode=queue.removeFirst();set.add(node.val);intvalue=node.val*2;if(node.left!=null){node.left.val=value+1;queue.add(node.left);}if(node.right!=null){node.right.val=value+2;queue.add(node.right);}}}publicbooleanfind(inttarget){returnset.contains(target);}}总结
使用广度优先算法遍历树,同时将节点的值保存起来,以待后续的查询操作。