LeetCode 222. 完全二叉樹的節點個數
阿新 • • 發佈:2020-12-01
222. 完全二叉樹的節點個數
Difficulty: 中等
給出一個完全二叉樹,求出該樹的節點個數。
說明:
的定義如下:在完全二叉樹中,除了最底層節點可能沒填滿外,其餘每層節點數都達到最大值,並且最下面一層的節點都集中在該層最左邊的若干位置。若最底層為第 h 層,則該層包含 1~2h個節點。
示例:
輸入:
1
/ \
2 3
/ \ /
4 5 6
輸出: 6
Solution
Language: 全部題目
方法一:簡單粗暴的層序遍歷,BFS+佇列實現,不過效率不高。
# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: def countNodes(self, root: TreeNode) -> int: if not root: return 0 queue, res = [root], 0 while queue: size = len(queue) for i in range(size): node = queue.pop(0) if node.left: queue.append(node.left) if node.right: queue.append(node.right) res += 1 return res