118 二叉搜索树中的插入操作

发布时间:2024年01月19日

问题描述:给定二叉搜索树(BST)的根节点和要插入树中的节点,将值插入二叉搜索树。返回插入后二叉搜索输的根节点。输入数据保证新值和原始二叉树中的任意节点值都不同。注意:可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。你可以返回任意有效的结果。

public void insert(TreeNode root,int val)
{
if(root.val>val)
{
if(root.left==null)
{
TreeNode newNode=new TreeNode();
newNode.val=val;
root.left=newNode;
}else
{
insert(root.left,val);
}
}else
{
if(root.right==null)
{
TreeNode newNode=new TreeNode();
newNode.val=val;
root.right=newNode;
}else
{
insert(root.right,val);
}
}
}
public TreeNode outerFunc(TreeNode root,int val)
{
insert(root,val);
return root;
}

非递归方式求解:通过在while循环中不停的向下走。

public TreeNode insert(TreeNode root,int val)
{
TreeNode current=root;
while(true)
{
if(current.val>val)
{
if(current.left==null)
{
TreeNode newNode=new TreeNode();
newNode.val=val;

current.left=newNode;
break;
}else
{
current=current.left;
}
}else
{
if(current.val<val)
{
if(current.right==null)
{
TreeNode newNode=new TreeNode();
newNode.val=val;
current.right=newNode;
break;
}else
{
current=current.left;
}
}
}
???????return root;
}

文章来源:https://blog.csdn.net/qq_52299902/article/details/135686281
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。