关注
贴一个第一题的解法吧:思路:求最近祖先,然后层次遍历,求路径长。下面是求路径,节点的话,再+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)
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
05-12 17:12
河南科技大学 Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你觉得实习能学到东西吗 #
18856次浏览 463人参与
# 秋招什么时候开投比较合适? #
8234次浏览 168人参与
# 现代汽车前瞻技术研发急速编程挑战赛 #
22652次浏览 188人参与
# 实习,不懂就问 #
30659次浏览 529人参与
# 软开人,秋招你打算投哪些公司呢 #
101155次浏览 951人参与
# 如何准备秋招 #
12538次浏览 224人参与
# 运营人求职交流聚集地 #
141208次浏览 989人参与
# 每个月的工资都是怎么分配的? #
15517次浏览 328人参与
# 你觉得现在还能进互联网吗? #
4901次浏览 102人参与
# 预测一下26届秋招形势 #
26531次浏览 247人参与
# 你们公司几号发工资 #
19152次浏览 129人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
28240次浏览 456人参与
# 晒一晒你收到的礼盒 #
70322次浏览 403人参与
# 打工人的精神状态 #
54371次浏览 993人参与
# 硬件应届生薪资是否普遍偏低? #
72714次浏览 511人参与
# 高考出分的那一天,我__ #
17309次浏览 269人参与
# 大疆今年的机械笔试难吗? #
41549次浏览 456人参与
# 来聊聊你认为的薪资天花板是哪家? #
31002次浏览 175人参与
# 牛客十周岁生日快乐 #
145263次浏览 1613人参与
# 机械实习一天多少钱合适? #
29058次浏览 177人参与
# 大家实习每天都在干啥 #
82958次浏览 506人参与