這周contest的簽到題泛烙。我感覺應該有別的做法吧,但我直接把它遍歷出來按照標準TWO SUM做的翘紊。蔽氨。
而且在遍歷的時候我竟然以為bst遍歷要用preorder了。帆疟。鹉究。。MDZZ
public boolean findTarget(TreeNode root, int k) {
List<Integer> list = new ArrayList<>();
preOrder(root, list);
int i = 0, j = list.size() - 1;
while (i < j) {
if (list.get(i) + list.get(j) == k) {
return true;
}
if (list.get(i) + list.get(j) < k) {
i++;
} else {
j--;
}
}
return false;
}
private void preOrder(TreeNode root, List<Integer> list) {
if (root == null) {
return;
}
preOrder(root.left, list);
list.add(root.val);
preOrder(root.right, list);
}