题目描述
给定一棵非空二叉搜索树和一个整数 ,请判断树中是否存在两个不同的节点,使这两个节点的值之和恰好等于 。
输入保证树中所有节点值互不相同。同一个节点不能被使用两次;即使 恰好等于某个节点值的两倍,也必须实际存在两个不同节点才能满足条件。
输入格式
第一行一个整数 ,表示二叉树的节点数。节点编号为 到 ,根节点编号为 ;当 时表示空树。
当 时,第二行包含 个整数 ,其中 表示节点 保存的值。
接下来 行,第 行包含两个整数 ,分别表示节点 的左孩子编号和右孩子编号。编号 表示相应孩子不存在。输入保证这些数据构成一棵合法二叉树。
最后一行输入一个整数 ,表示目标和。
输出格式
如果存在两个不同节点的值之和等于 ,输出 true;否则输出 false。
1
0
0 0
20000
false
2
10000 -10000
2 0
0 0
0
true
3
0 -10000 10000
2 3
0 0
0 0
20000
false
数据范围与约定
- 二叉树的节点个数的范围是 [1, ]
- ≤ v_i ≤
- 题目数据保证,输入的 root 是一棵 有效 的二叉搜索树
- ≤ k ≤