LeetCode——701. 二叉搜索树中的插入操作

题目描述:

解题思路:

根据二叉搜索树的性质,找到符合条件的地方插入新的节点。 参考代码:

public TreeNode insertIntoBST(TreeNode root, int val) {
          
   
        if (root == null) {
          
   
            return new TreeNode(val);
        }
        TreeNode pos = root;
        while (pos != null) {
          
   

            if(pos.val>val){
          
   
                if(pos.left==null){
          
   
                    pos.left=new TreeNode(val);
                    break;
                }
                else {
          
   
                    pos=pos.left;
                }
            }else {
          
   
                if(pos.right==null){
          
   
                    pos.right=new TreeNode(val);
                    break;
                }else {
          
   
                    pos=pos.right;
                }
            }
        }
        return root;
    }

第二种思路是递归,如果为空,根据值建立新的树返回即可,小于根节点,在左子树中插入,相反在右子树中插入。 参考代码:

public TreeNode insertIntoBST2(TreeNode root, int val) {
          
   
        if(root==null){
          
   
            return new TreeNode(val);
        }
        if(root.val>val)
            root.left=insertIntoBST2(root.left,val);
        if(root.val<val)
            root.right=insertIntoBST2(root.right,val);
        return root;
    }
经验分享 程序员 微信小程序 职场和发展