news 2026/5/1 6:11:09

2026年--Lc339-二叉树的最近公共祖先(树,递归)--java版

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
2026年--Lc339-二叉树的最近公共祖先(树,递归)--java版

1.题目


2.思路

如果当前节点是 null 或者是目标节点之一(p 或 q),直接返回当前节点。
递归左右子树:
左子树返回值为 l,右子树返回值为 r。
根据左右子树的返回值判断:
如果左子树返回 null,说明 p 和 q 都在右子树中,返回右子树的结果。
如果右子树返回 null,说明 p 和 q 都在左子树中,返回左子树的结果。
如果左右子树都不为 null,说明当前节点就是最近公共祖先,返回当前节点。

3.代码实现

/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */classSolution{publicTreeNodelowestCommonAncestor(TreeNoderoot,TreeNodep,TreeNodeq){// 如果当前节点是 null 或者是目标节点之一(p 或 q),直接返回当前节点。// 递归左右子树:// 左子树返回值为 l,右子树返回值为 r。// 根据左右子树的返回值判断:// 如果左子树返回 null,说明 p 和 q 都在右子树中,返回右子树的结果。// 如果右子树返回 null,说明 p 和 q 都在左子树中,返回左子树的结果。// 如果左右子树都不为 null,说明当前节点就是最近公共祖先,返回当前节点。if(root==null||root==p||root==q){//单个节点,返回自身returnroot;}//递归遍历左右子树TreeNodeleft=lowestCommonAncestor(root.left,p,q);TreeNoderight=lowestCommonAncestor(root.right,p,q);if(left!=null&&right!=null){//如果左右子树都不为 null,说明当前节点就是最近公共祖先,返回当前节点returnroot;}//如果左子树为空elseif(left==null){//说明p,q都在右子树的节点中returnright;}else{//如果右子树为空,说明p,q都在左子树的节点中returnleft;}}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 13:38:12

C语言数据类型

1、数据类型 1.1字符型 字符英文单词是character,在C语言中 char 表示字符类型。 char字符型------1字节 [signed] char//有符号的 unsigned char//无符号的 1.2整型 整数英文单词integer,在C语言中 int 表示整型。 //短整型------2字节 short [int] …

作者头像 李华
网站建设 2026/4/30 3:46:13

拼多多春节加班费热议背后,近屿智能给出了另一份高薪答案

春节临近,你是否也正陷入“年后再说”的循环?当大多数人在为年终琐事分心时,有一群人,却在默默积累着“节后爆发”的资本——他们关注的不是加班补贴,而是如何让自己的技能,配得上更高的估值。一、高薪加班…

作者头像 李华
网站建设 2026/4/30 10:57:08

java学习--ArrayList

一、什么是 ArrayListArrayList 是 java.util 包下的类,实现了 List 接口,本质是动态扩容的数组(相比普通数组,它的长度可以自动调整)。底层基于数组实现,支持快速随机访问(通过索引取值&#x…

作者头像 李华
网站建设 2026/4/29 18:19:16

cocos 金色划过shader教程

视频教程 视频教程 vec4 o texture(cc_spriteTexture,uv);有图片获取图片 现在是用在label 获取字 透明部分不会获取 float beamPos mod(cc_time.x -0.3, 3.0) ; 设定圆心位置 将光柱想象成圆形 获取圆心位置 计算遍历所有像素点到圆心的距离 如果在glow代表圆的范围 如果在范…

作者头像 李华