Leetcode 543 二叉樹的直徑

2022-03-27 00:32:40 字數 863 閱讀 6227

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

示例 :

給定二叉樹

1/ \

2 3

/ \

4 5

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

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

/*** definition for a binary tree node.

* public class treenode

* }*/

/*

* 思路:

* 1.路徑的長度是該路徑經過的節點數減一(包括自身),所以求路徑的直徑需要將路徑經過節點數的最大值減一

* 2.任意一條路徑,可以表示成以該節點為起點,從其左兒子和右兒子向下遍歷的路徑拼接

直徑為左兒子最大直徑l + 右兒子最大直徑 r + 自身長度 1

公式: l + r + 1

*/class solution

getmaxdepth(root);

return max - 1;

}private int getmaxdepth(treenode root)

int left = getmaxdepth(root.left);

int right = getmaxdepth(root.right);

max = math.max(max,left + right + 1);

return math.max(left,right) + 1;

}}

LeetCode 543 二叉樹的直徑

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

leetcode 543 二叉樹的直徑

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

Leetcode 543 二叉樹的直徑

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