当前位置: 首页> 房产> 建材 > 网站百度排名查询_最新疫情最新消息2023年7月份_哪里能买精准客户电话_今日财经新闻

网站百度排名查询_最新疫情最新消息2023年7月份_哪里能买精准客户电话_今日财经新闻

时间:2025/7/12 15:57:34来源:https://blog.csdn.net/weixin_73939095/article/details/143615998 浏览次数:0次
网站百度排名查询_最新疫情最新消息2023年7月份_哪里能买精准客户电话_今日财经新闻

仅为个人记录复盘学习历程,解题思路来自代码随想录

代码随想录刷题笔记总结网址:
代码随想录

235. 二叉搜索树的最近公共祖先

给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。

百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”

提供参数:根结点root

关键思路:二叉搜索树和普通二叉树的区别在于它的左右是有顺序的,故通过选择进行确定遍历左子树还是右子树,不需要进行回溯,在本题中体现为判断当前节点值是否在p,q节点值的区间内。出现最近公共祖先只有两种情况:

1.左子树出现p(q),右子树出现q(p)。这种情况下该结点就是最近公共祖先。

2.两个节点都在同一个子树,那么需要继续向该子树遍历。

在本题中,判断是否为最近公共祖先条件为是否满足当前节点值在区间[p,q]或[q,p]中。

情况1显然满足该条件。

情况二中显然也满足该条件,两个节点出现在同一个子树,继续遍历,在一条路径上的情况找公共祖先节点也可由是否满足区间来判断。

代码大致如下:

    public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {return traversal(root,p,q);}public TreeNode traversal(TreeNode node, TreeNode p, TreeNode q){//1.终止条件if(node==null)return null;//2.单层递归逻辑//2.1全在左子树if(node.val>p.val&&node.val>q.val){TreeNode left=traversal(node.left,p,q);if(left!=null)return left;}//2.2全在右子树if(node.val<p.val&&node.val<q.val){TreeNode right=traversal(node.right,p,q);if(right!=null)return right;}//2.3在中间节点return node;}

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

给定二叉搜索树(BST)的根节点和要插入树中的值,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据保证,新值和原始二叉搜索树中的任意节点值都不同。

提供参数:根结点root,值val。

关键思路:简单遍历二叉搜索树找到提供val构造出节点应该在的位置,并与它的父节点联系起来。

代码大致如下:

    public TreeNode insertIntoBST(TreeNode root, int val) {//1.终止条件if(root==null){TreeNode node=new TreeNode(val);return node;}//2.单层递归逻辑//2.1if(root.val>val)root.left=insertIntoBST(root.left,val);if(root.val<val)root.right=insertIntoBST(root.right,val);return root;}

关键字:网站百度排名查询_最新疫情最新消息2023年7月份_哪里能买精准客户电话_今日财经新闻

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: