给定一棵二叉查找树和一个新的树节点,将节点插入到树中。
你需要保证该树仍然是一棵二叉查找树。
注意事项
You can assume there is no duplicate values in this tree node.
您在真实的面试中是否遇到过这个题?
Yes
样例
给出如下一棵二叉查找树,在插入节点6之后这棵二叉查找树可以是这样的:
代码语言:javascript复制 2 2
/ /
1 4 --> 1 4
/ /
3 3 6
常规操作
这个就是相当于一个二分查找的过程,前天才刚写过,实际上也比较简单,一个技巧就是要找一个指针把父节点记住,到时候就插入到这个父节点的左或者右:详细的看这里。
代码语言:javascript复制TreeNode * insertNode(TreeNode * root, TreeNode * node) {
if(root==NULL)
{
root=node;
return root;
}
TreeNode *tmp=root;
TreeNode *p;
while(tmp)
{
p=tmp;
if(node->val>tmp->val)
tmp=tmp->right;
else if(node->val<tmp->val)
tmp=tmp->left;
}
if(node->val>p->val)
p->right=node;
if(node->val<p->val)
p->left =node;
return root;
// write your code here
}