可以做兼职的网站,网站设计博客,用英文字母做网站关键词,青岛网站建设王道下拉??二叉搜索树中的插入操作 leetcode701. 二叉搜索树中的插入操作题目描述 递归解题解题思路代码演示 二叉树专题 leetcode701. 二叉搜索树中的插入操作 原题链接#xff1a; 来源#xff1a;力扣#xff08;LeetCode#xff09; 链接#xff1a;https://leetcode.cn/problem… 二叉搜索树中的插入操作 leetcode701. 二叉搜索树中的插入操作题目描述 递归解题解题思路代码演示 二叉树专题 leetcode701. 二叉搜索树中的插入操作 原题链接 来源力扣LeetCode 链接https://leetcode.cn/problems/insert-into-a-binary-search-tree 题目描述 给定二叉搜索树BST的根节点 root 和要插入树中的值 value 将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据 保证 新值和原始二叉搜索树中的任意节点值都不同。 注意可能存在多种有效的插入方式只要树在插入后仍保持为二叉搜索树即可。 你可以返回 任意有效的结果 。 示例1 输入root [4,2,7,1,3], val 5 输出[4,2,7,1,3,5] 解释另一个满足题目要求可以通过的树是 示例 2 输入root [40,20,60,10,30,50,70], val 25 输出[40,20,60,10,30,50,70,null,null,25] 示例 3 输入root [4,2,7,1,3,null,null,null,null,null,null], val 5 输出[4,2,7,1,3,5] 提示 树中的节点数将在 [0, 104]的范围内。 -108 Node.val 108 所有值 Node.val 是 独一无二 的。 -108 val 108 保证 val 在原始BST中不存在。 递归解题
解题思路 我们先要确定一直值要插入的地方因为搜索树要满足有序的 因此第一步先确定位置 和当前节点的值比较比当前节点值小就去左树上继续递归 比当前节点值大就去右树上递归 最后会来到一个null 位置也就是base case 创建出这个节点。 代码演示
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val val;* this.left left;* this.right right;* }* }*/
class Solution {public TreeNode insertIntoBST(TreeNode root, int val) {return process(root,val); }//递归public TreeNode process(TreeNode root,int val){//base case 来到null 位置创建出节点if(root null){return new TreeNode(val);}//寻找创建的位置if(root.val val){root.left process(root.left,val);}//寻找创建的位置if(root.val val){root.right process(root.right,val);}return root;}
}二叉树专题
leetcode98. 验证二叉搜索树
leetcode700. 二叉搜索树中的搜索
leetcode95–不同的二叉搜索树 II
力扣-根据前序和后序遍历构造二叉树