Leetcode 662 二叉樹最大寬度 C

2021-10-08 12:28:57 字數 1364 閱讀 6236

給定乙個二叉樹,編寫乙個函式來獲取這個樹的最大寬度。樹的寬度是所有層中的最大寬度。這個二叉樹與滿二叉樹(full binary tree)結構相同,但一些節點為空。

每一層的寬度被定義為兩個端點(該層最左和最右的非空節點,兩端點間的null節點也計入長度)之間的長度。

示例 1:

輸入: 

1/ \

3 2

/ \ \

5 3 9

輸出: 4

解釋: 最大值出現在樹的第 3 層,寬度為 4 (5,3,null,9)。

示例 2:

輸入: 

1/

3

/ \

5 3

輸出: 2

解釋: 最大值出現在樹的第 3 層,寬度為 2 (5,3)。

示例 3:

輸入: 

1/ \

3 2

/

5

輸出: 2

解釋: 最大值出現在樹的第 2 層,寬度為 2 (3,2)。

示例 4:

輸入: 

1/ \

3 2

/ \

5 9

/ \

6 7

輸出: 8

解釋: 最大值出現在樹的第 4 層,寬度為 8 (6,null,null,null,null,null,null,7)。

注意:答案在32位有符號整數的表示範圍內。

bfs,並對樹進行二進位制編號,向左則+0,向右則+1,10進製編碼即左子樹為根節點2、右子樹為根子樹2+1

使用迴圈佇列,每層的最左節點即隊首,最右節點即隊尾。詳細過程見**

/**

* definition for a binary tree node.

* struct treenode

* };

*/class

solution

ans =

max(ans,length+1)

; size = q.

size()

;while

(size--)}

return ans;}}

;// 2*code + 1 2*

LeetCode 662 二叉樹最大寬度

給定乙個二叉樹,編寫乙個函式來獲取這個樹的最大寬度。樹的寬度是所有層中的最大寬度。這個二叉樹與滿二叉樹 full binary tree 結構相同,但一些節點為空。每一層的寬度被定義為兩個端點 該層最左和最右的非空節點,兩端點間的null節點也計入長度 之間的長度。示例 1 輸入 1 3 2 5 3...

leetcode 662 二叉樹最大寬度

給定乙個二叉樹,編寫乙個函式來獲取這個樹的最大寬度。樹的寬度是所有層中的最大寬度。這個二叉樹與滿二叉樹 full binary tree 結構相同,但一些節點為空。每一層的寬度被定義為兩個端點 該層最左和最右的非空節點,兩端點間的null節點也計入長度 之間的長度。示例 1 輸入 1 3 2 5 3...

LeetCode662 二叉樹最大寬度

給定乙個二叉樹,編寫乙個函式來獲取這個樹的最大寬度。樹的寬度是所有層中的最大寬度。這個二叉樹與滿二叉樹 full binary tree 結構相同,但一些節點為空。每一層的寬度被定義為兩個端點 該層最左和最右的非空節點,兩端點間的null節點也計入長度 之間的長度。示例 1 輸入 1 3 2 5 3...