网易首页 > 网易号 > 正文 申请入驻

2024-03-13:用go语言,给定一个二叉搜索树, 找到该树中两个指定

0
分享至

2024-03-13:用go语言,给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。

输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8。

输出: 6。

答案2024-03-13:

来自左程云。

灵捷3.5

大体步骤如下:

1.首先,我们需要遍历树来找到这两个节点。从根节点开始,若两个节点都比当前节点的值小,则它们一定在当前节点的左子树中。若两个节点都比当前节点的值大,则它们一定在当前节点的右子树中。如果以上两种情况都不成立,那么说明一个节点在左子树中,另一个节点在右子树中,那么当前节点就是它们的最近公共祖先。

2.为了解决这个问题,我们可以使用迭代方法。从根节点开始,比较当前节点的值与给定节点的值。根据比较结果,不断移动到左子树或右子树,直到满足上述公共祖先的情况,即找到最近的公共祖先。

总的时间复杂度:

在最坏情况下,我们需要遍历整棵树,时间复杂度为 O(n),其中 n 是树中节点的数量。

总的额外空间复杂度:

迭代方法的空间复杂度是 O(1),因为我们只使用了常数级别的额外空间。

综上所述,总的时间复杂度为 O(n),总的额外空间复杂度为 O(1)。

go完整代码如下:

packagemain
import"fmt"
typeTreeNodestruct{
Valint
Left*TreeNode
Right*TreeNode
}
//lowestCommonAncestor用于找到二叉搜索树中两个节点的最近公共祖先
funclowestCommonAncestor(root,p,q*TreeNode)*TreeNode{
forroot.Val!=p.Val&&root.Val!=q.Val{
if(min(p.Val,q.Val)break
}
ifroot.Valroot=root.Right
}else{
root=root.Left
}
}
returnroot
}
funcmin(x,yint)int{
ifxreturnx
}
returny
}
funcmax(x,yint)int{
ifx>y{
returnx
}
returny
}
funcmain(){
//创建二叉搜索树
root:=&TreeNode{Val:6}
root.Left=&TreeNode{Val:2}
root.Right=&TreeNode{Val:8}
root.Left.Left=&TreeNode{Val:0}
root.Left.Right=&TreeNode{Val:4}
root.Right.Left=&TreeNode{Val:7}
root.Right.Right=&TreeNode{Val:9}
root.Left.Right.Left=&TreeNode{Val:3}
root.Left.Right.Right=&TreeNode{Val:5}
//定义p和q
p:=&TreeNode{Val:2}
q:=&TreeNode{Val:8}
//调用lowestCommonAncestor函数
result:=lowestCommonAncestor(root,p,q)
//输出结果
fmt.Printf("最近公共祖先的值为:%d\n",result.Val)
}



python完整代码如下:

#-*-coding:utf-8-*-
classTreeNode:
def__init__(self,x):
self.val=x
self.left=None
self.right=None
deflowestCommonAncestor(root,p,q):
while(root.val-p.val)*(root.val-q.val)>0:
root=(root.right,root.left)[p.val>root.val]
returnroot
defmain():
#创建二叉搜索树
root=TreeNode(6)
root.left=TreeNode(2)
root.right=TreeNode(8)
root.left.left=TreeNode(0)
root.left.right=TreeNode(4)
root.right.left=TreeNode(7)
root.right.right=TreeNode(9)
root.left.right.left=TreeNode(3)
root.left.right.right=TreeNode(5)
#定义p和q
p=TreeNode(2)
q=TreeNode(8)
#调用lowestCommonAncestor函数
result=lowestCommonAncestor(root,p,q)
#输出结果
print("最近公共祖先的值为:",result.val)
if__name__=="__main__":
main()



声明:个人原创,仅供参考

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
韩国瑜强势通过改革法案,民进党求饶无效,蓝白大败绿营扬眉吐气

韩国瑜强势通过改革法案,民进党求饶无效,蓝白大败绿营扬眉吐气

纵横观天下ZK
2024-05-29 07:51:44
暴雷了,海银700亿资金池崩盘,无数居民彻底破产,网友议论纷纷

暴雷了,海银700亿资金池崩盘,无数居民彻底破产,网友议论纷纷

眼光很亮
2024-05-29 08:00:28
足球报:穆里奇曾不适应广州饮食,看到白切鸡的时候差点吐了

足球报:穆里奇曾不适应广州饮食,看到白切鸡的时候差点吐了

直播吧
2024-05-29 11:17:21
凯特王妃疑似化疗造型曝光,脸上笑容明媚,状态恢复得不错!

凯特王妃疑似化疗造型曝光,脸上笑容明媚,状态恢复得不错!

鑫鑫说说
2024-05-29 14:19:49
多国政客谈论“开战”可能,俄方警告或致局势失控,欧洲对俄乌冲突分歧加剧

多国政客谈论“开战”可能,俄方警告或致局势失控,欧洲对俄乌冲突分歧加剧

环球网资讯
2024-05-29 06:36:25
华春莹副部长履新后,深夜第一时间点名美国,中美生乱后果很严重

华春莹副部长履新后,深夜第一时间点名美国,中美生乱后果很严重

说天说地说实事
2024-05-29 06:39:09
笑话,支持乌克兰就不配做中国人?

笑话,支持乌克兰就不配做中国人?

非虚构故事
2024-05-26 14:50:31
商汤科技:过去 10 年中已经购买了超过 4 万个英伟达芯片

商汤科技:过去 10 年中已经购买了超过 4 万个英伟达芯片

IT之家
2024-05-28 09:20:06
董智森被套出心里话:金门人不要统一,却被金门董氏宗亲会长打脸

董智森被套出心里话:金门人不要统一,却被金门董氏宗亲会长打脸

柠檬小7
2024-05-29 11:25:13
新娘全裸海报迎宾!网红千惠惊呆众人!网友直言:这老公真大方!

新娘全裸海报迎宾!网红千惠惊呆众人!网友直言:这老公真大方!

八卦爱侃娱
2024-05-29 15:19:11
我公公,一个小学退休教师,每月退休金7000多,简直是人生赢家!

我公公,一个小学退休教师,每月退休金7000多,简直是人生赢家!

知秋侃史
2024-05-23 03:10:40
太适合广东队!朱芳雨有望捡漏“黑又硬内线”,能打爆辽宁男篮!

太适合广东队!朱芳雨有望捡漏“黑又硬内线”,能打爆辽宁男篮!

绯雨儿
2024-05-29 15:04:05
闹大了!新疆文旅解除和汪峰新女友森林北一切合作,业内人怒批

闹大了!新疆文旅解除和汪峰新女友森林北一切合作,业内人怒批

飞哥AI矩阵
2024-05-26 19:22:46
成都楼市全军覆没,成都高新区房价从26000元降至24000元,降2000

成都楼市全军覆没,成都高新区房价从26000元降至24000元,降2000

有事问彭叔
2024-05-28 16:35:02
个人账户养老金为什么要除以139个月?是怎么算出来的?

个人账户养老金为什么要除以139个月?是怎么算出来的?

天下纵览
2024-05-27 09:57:44
张兰下午直播时候和儿子汪小菲连线,张嘴就说:咱那美媳妇呢?

张兰下午直播时候和儿子汪小菲连线,张嘴就说:咱那美媳妇呢?

李保军财经
2024-05-29 10:08:29
你见过最无耻的双标行为是什么?网友:国人面前,外国人却有例外

你见过最无耻的双标行为是什么?网友:国人面前,外国人却有例外

小怪吃美食
2024-05-27 19:52:03
苍了个天的,到底是谁发明的辛其物,也太好玩了吧

苍了个天的,到底是谁发明的辛其物,也太好玩了吧

承乾爱写字
2024-05-28 21:42:28
台湾上空发生激烈交锋,中美军机交手,专家发现不对:大陆咋来的

台湾上空发生激烈交锋,中美军机交手,专家发现不对:大陆咋来的

星辰故事屋
2024-05-27 22:00:17
唐山打人案:主犯被判24年,背后保护伞被揪出,在法庭上忏悔

唐山打人案:主犯被判24年,背后保护伞被揪出,在法庭上忏悔

古书记史
2024-05-29 14:20:06
2024-05-29 16:46:44
moonfdd
moonfdd
福大大架构师每日一题
405文章数 7关注度
往期回顾 全部

科技要闻

王传福再放狠话,燃油车要成“非主流”

头条要闻

西北大学博士招生被质疑"空降"本校考生 学院:正调查

头条要闻

西北大学博士招生被质疑"空降"本校考生 学院:正调查

体育要闻

巴黎主席向皇马索要8000万 佛爷:1分不给

娱乐要闻

张若昀怎么剧外比剧内更惨兮兮…

财经要闻

东方通收购藏雷 花6亿买来"业绩变脸"

汽车要闻

新哈弗H6苦练内功 向燃油车绝缘智能SAY NO

态度原创

艺术
家居
亲子
本地
公开课

艺术要闻

穿越时空的艺术:《马可·波罗》AI沉浸影片探索人类文明

家居要闻

与美共生 空间线条勾勒生活风雅

亲子要闻

躺在床上自言自语的宝宝,小家伙怎么这么招人稀罕呢!肉嘟嘟的样子太可爱啦

本地新闻

食味印象|歙县限定!枇杷味儿的清甜初夏

公开课

近视只是视力差?小心并发症

无障碍浏览 进入关怀版