给定一棵二叉查找树和一个新的树节点,将节点插入到树中。
你需要保证该树仍然是一棵二叉查找树。
您在真实的面试中是否遇到过这个题? Yes
样例
给出如下一棵二叉查找树,在插入节点6之后这棵二叉查找树可以是这样的:
2
/ \
1 4 –>
/
3
2
/ \
1 4
/ \
3 6
**
**
我的解法:
**
**
public class Solution {
/**
* @param root: The root of the binary search tree.
* @param node: insert this node into the binary search tree
* @return: The root of the new binary search tree.
*/
public TreeNode insertNode(TreeNode root, TreeNode node) {
if (root != null){
if (root.val < node.val){
root.right = insertNode(root.right, node);
} else {
root.left = insertNode(root.left, node);
}
} else {
root = node;
}
return root;
}
}
答案给出参考答案
public class Solution {
/**
* @param root: The root of the binary search tree.
* @param node: insert this node into the binary search tree
* @return: The root of the new binary search tree.
*/
public TreeNode insertNode(TreeNode root, TreeNode node) {
if (root == null) {
return node;
}
if (root.val > node.val) {
root.left = insertNode(root.left, node);
} else {
root.right = insertNode(root.right, node);
}
return root;
}
}
理解下递归