給定乙個二叉樹,編寫乙個函式來獲取這個樹的最大寬度。樹的寬度是所有層中的最大寬度。這個二叉樹與滿二叉樹(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...