Insert into a Binary Search Tree 二叉搜索树中的插入操作

Insert into a Binary Search Tree

给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 保证原始二叉搜索树中不存在新值。

注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回任意有效的结果。

例如, 

给定二叉搜索树:

        4
       / \
      2   7
     / \
    1   3

和 插入的值: 5

你可以返回这个二叉搜索树:

         4
       /   \
      2     7
     / \   /
    1   3 5

或者这个树也是有效的:

         5
       /   \
      2     7
     / \   
    1   3
         \
          4
//非递归实现
	public TreeNode insertIntoBST(TreeNode root, int val) {
		if(root == null) 
			return new TreeNode(val);
		
		TreeNode cur = root;
		
		while(cur != null) {
			if(cur.val < val) {
				if(cur.right == null) {
					cur.right = new TreeNode(val);
					return root;
				}else 
					cur = cur.right;
			}else if(cur.val>val) {
				if(cur.left == null) {
					cur.left = new TreeNode(val);
					return root;
				}else 
					cur = cur.left;
			}
		}
		return root;
	}
//递归实现
public class Solution {
 
    public TreeNode insertIntoBST(TreeNode root, int val) {
        if(root == null) 
        	return new TreeNode(val);    
        if(root.val < val) 
        	root.right = insertIntoBST(root.right, val);
        else if(root.val > val) 
        	root.left = insertIntoBST(root.left, val);       
        return root;
    }
}

 

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-11 11:21
被夸真的超级开心,好可爱的姐姐
码农索隆:老色批们不用脑补了,我把金智妮的图找来了查看图片
点赞 评论 收藏
分享
06-25 16:25
梧州学院 Java
愿汐_:项目介绍那么长,然而你做了啥就一句话?
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务