leetcode 543 二叉樹的直徑

2021-09-23 17:12:49 字數 1031 閱讀 5475

給定一棵二叉樹,你需要計算它的直徑長度。一棵二叉樹的直徑長度是任意兩個結點路徑長度中的最大值。這條路徑可能穿過根結點。

示例 :

給定二叉樹

1

/ \2 3

/ \

4 5

返回3, 它的長度是路徑 [4,2,1,3] 或者 [5,2,1,3]。

注意:兩結點之間的路徑長度是以它們之間邊的數目表示。

小結:對於每個節點分別求解左、右的深度,兩邊的深度求和,與全域性的直徑比較。如果大於,就替換。

# definition for a binary tree node.

# class treenode(object):

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

class solution(object):

def deeppath(self, root):

if root == none:

return 0

ldp = self.deeppath(root.left)

rdp = self.deeppath(root.right)

self.res = max(self.res, ldp + rdp)

return max(ldp, rdp) + 1

def diameterofbinarytree(self, root):

""":type root: treenode

:rtype: int

"""if root == none:

return 0

self.res = 0

self.deeppath(root)

return self.res

LeetCode 543 二叉樹的直徑

給定一棵二叉樹,你需要計算它的直徑長度。一棵二叉樹的直徑長度是任意兩個結點路徑長度中的最大值。這條路徑可能穿過根結點。示例 給定二叉樹 1 2 3 4 5 返回3,它的長度是路徑 4,2,1,3 或者 5,2,1,3 注意 兩結點之間的路徑長度是以它們之間邊的數目表示。解題思路 該題就是求解二叉樹中...

Leetcode 543 二叉樹的直徑

題目描述 給定一棵二叉樹,你需要計算它的直徑長度。一棵二叉樹的直徑長度是任意兩個結點路徑長度中的最大值。這條路徑可能穿過根結點。思路 直徑長度 路徑的節點數 1 以每個節點為 根節點 的最長路徑,找出最大值。最長路徑上的節點數是 1 左子樹深度 右子樹深度 樹深度是1 max 左子樹深度,右子樹深度...

LeetCode 543 二叉樹的直徑

題目 給定一棵二叉樹,你需要計算它的直徑長度。一棵二叉樹的直徑長度是任意兩個結點路徑長度中的最大值。這條路徑可能穿過根結點。示例 1 2 3 4 5返回 3,它的長度是路徑 4,2,1,3 或者 5,2,1,3 注意 兩結點之間的路徑長度是以它們之間邊的數目表示。原始碼 definition for...