关注
贴一个第一题的解法吧:思路:求最近祖先,然后层次遍历,求路径长。下面是求路径,节点的话,再+1就行 class Node:
def __init__(self,val):
self.val = val
self.left = None
self.right = None
def countPath(node, a:int, b:int):
res = 0
stack = [node]
while len(stack) > 0:
tmp = []
while len(stack) > 0:
t = stack.pop()
if t == None:
continue
if t.val == a or t.val == b:
return res
tmp.append(t.left)
tmp.append(t.right)
stack = tmp
res += 1
return -float("inf")
def nodeDistances(root:None,a:int,b:int):
if root == None:
return None
if root.val == a or root.val == b:
return root
x = nodeDistances(root.left, a, b)
y = nodeDistances(root.right, a, b)
if x == None:
return y
elif y == None:
return x
else:
return root
if __name__ == "__main__":
root = nodeDistances(node, a, b)
if root.val == a or root.val == b:
print(max(countPath(root.left,a,b), countPath(root.right,a,b)) + 1)
else:
print(countPath(root.left,a,b) + countPath(root.right,a,b) + 2)
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 滴滴求职进展汇总 #
167765次浏览 1655人参与
# 你觉得材料专业有必要实习嘛 #
10401次浏览 51人参与
# 美团求职进展汇总 #
1913470次浏览 17755人参与
# 找工作有哪些冷知识 #
6402次浏览 100人参与
# 应届生应该先就业还是先择业 #
92578次浏览 565人参与
# 德州仪器求职进展汇总 #
4378次浏览 139人参与
# 实习期间如何提升留用概率? #
18812次浏览 288人参与
# 小米硬件提前批进度交流 #
161432次浏览 1503人参与
# 应届生简历当中,HR最关注哪些? #
27615次浏览 220人参与
# 互联网公司爆料 #
109643次浏览 649人参与
# vivo工作体验 #
18036次浏览 116人参与
# Offer比较,你最看重什么? #
139907次浏览 886人参与
# 牛友投递互助,不漏校招机会 #
263731次浏览 3647人参与
# 机械人避雷的岗位/公司 #
9028次浏览 51人参与
# 双非能在秋招上岸吗? #
205747次浏览 1064人参与
# 通信/硬件求职避坑tips #
47845次浏览 443人参与
# 扒一扒那些奇葩实习经历 #
21085次浏览 598人参与
# 小鹏汽车工作体验 #
6387次浏览 42人参与
# 机械人,说说你的烦心事 #
58661次浏览 796人参与
# 你觉得技术面多长时间合理? #
82911次浏览 611人参与