LeetCode 700 Search in a Binary Search Tree

题意

给定一颗 二叉搜索树 的根节点,和一个要插入的值,将值插入进去,并返回根节点

  • 保证原树中不存在新值
  • 只要保证返回的树同样也是 二叉搜索树 即可

例:

1
2
3
4
5
6
给予一棵树:
4
/ \
2 7
/ \
1 3

对于搜索值: 2, 你应该返回以下子树:

1
2
3
  2     
/ \
1 3

解法

因为是二叉搜索树, 所以根据二叉搜索树的规则遍历即可.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public TreeNode searchBST(TreeNode root, int val) {
while (root != null) {
if (root.val < val) {
root = root.right;
} else if (root.val > val) {
root = root.left;
} else {
return root;
}
}
return root;
}
}

Runtime: 0 ms, faster than 100.00% of Java online submissions for Search in a Binary Search Tree.

Memory Usage: 40.4 MB, less than 17.60% of Java online submissions for Search in a Binary Search Tree.

  • 本文作者: 赵俊
  • 本文链接: http://www.zhaojun.im/leetcode-700/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!