题目:原题链接(中等)
标签:树、深度优先搜索
解法 | 时间复杂度 | 空间复杂度 | 执行用时 |
---|---|---|---|
Ans 1 (Python) | O ( N ) O(N) O(N) | O ( H ) O(H) O(H) | 64ms (40.63%) |
Ans 2 (Python) | |||
Ans 3 (Python) |
解法一:
class Solution:
def __init__(self):
self.ans = 0
def diameter(self, root: 'Node') -> int:
self.dfs(root)
return self.ans
def dfs(self, node):
if not node:
return 0
max1 = max2 = 0
for child in node.children:
val = self.dfs(child)
if val > max1:
max1, max2 = val, max1
elif val > max2:
max1, max2 = max1, val
self.ans = max(self.ans, max1 + max2)
return max1 + 1