关注
贴一个第一题的解法吧:思路:求最近祖先,然后层次遍历,求路径长。下面是求路径,节点的话,再+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)
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你觉得大几开始实习最合适? #
13343次浏览 134人参与
# uu们,春招你还来吗? #
51893次浏览 270人参与
# 开放七大实习专项,百度暑期实习值得冲吗 #
32761次浏览 599人参与
# 面试被问到不会的问题,你怎么应对? #
11645次浏览 111人参与
# 面试中,你被问过哪些奇葩问题? #
91989次浏览 869人参与
# 做完笔试后你收到面试了吗? #
12564次浏览 137人参与
# 招商银行数字金融训练营 #
70039次浏览 870人参与
# 你都用vibe coding做过什么? #
7773次浏览 290人参与
# AI Coding实战技巧 #
6805次浏览 125人参与
# 七猫笔试 #
6282次浏览 46人参与
# 你现在一天AI几次? #
6180次浏览 74人参与
# 你见过哪些招聘隐形歧视? #
9350次浏览 83人参与
# Vibe Coding 会干掉初级岗位吗? #
11512次浏览 150人参与
# 26届春招投递记录 #
1373次浏览 21人参与
# 大厂实习和小厂实习最大的区别是什么? #
22512次浏览 164人参与
# 如果人生可以debug你会改哪一行? #
4993次浏览 90人参与
# 2023年不发年终奖的公司盘点 #
30142次浏览 171人参与
# 牛友の3月总结 #
15953次浏览 141人参与
# 四大天坑是哪四家? #
111041次浏览 239人参与
# Claude Code泄露源码 #
4523次浏览 74人参与
# 秋招OC许愿 #
425084次浏览 2705人参与
# 金融财经春招备战日记 #
60783次浏览 253人参与