您的位置:首页 > 其它

在二叉查找树中插入节点

2017-09-09 17:12 190 查看
给定一棵二叉查找树和一个新的树节点,将节点插入到树中。
你需要保证该树仍然是一棵二叉查找树。


 注意事项


You can assume there is no duplicate values in this tree + node.

您在真实的面试中是否遇到过这个题? 

Yes

样例

给出如下一棵二叉查找树,在插入节点6之后这棵二叉查找树可以是这样的:
2             2
/ \           / \
1   4   -->   1   4
/             / \
3             3   6

代码如下:

/**
 * Definition of TreeNode:
 * public class TreeNode {
 *     public int val;
 *     public TreeNode left, right;
 *     public TreeNode(int val) {
 *         this.val = val;
 *         this.left = this.right = null;
 *     }
 * }
 */
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) {
        // write your code here
        if(root==null)
        {
            return node;
        }
        if(root.val>node.val)
        {
            if(root.left==null)
            {
                root.left=node;
                return root;
            }
            insertNode(root.left,node);
            return root; 
        }
        else if(root.val<node.val)
        {
            if(root.right==null)
            {
                root.right=node;
                return root;
            }
             insertNode(root.right,node);
             return root;
        }
        return root;
    }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: