Leetcode 543 二叉樹的直徑

2021-09-26 04:49:11 字數 487 閱讀 7575

題目描述

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

思路:直徑長度 = 路徑的節點數 -1;

以每個節點為「根節點」的最長路徑,找出最大值。

最長路徑上的節點數是 1+左子樹深度+右子樹深度

樹深度是1+max(左子樹深度,右子樹深度)

遞迴。核心遞迴函式必須同時有兩個作用:1.比出最長路徑;2.計算深度

/**

* definition for a binary tree node.

* struct treenode

* };

*/class solution

//返回值返回 深度 引用返回maxnodenum節點數

int countfromnode(treenode* root, int& maxnodenum)

};

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 2 3 4 5返回 3,它的長度是路徑 4,2,1,3 或者 5,2,1,3 注意 兩結點之間的路徑長度是以它們之間邊的數目表示。原始碼 definition for...