mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 03:34:02 +08:00
Update 0222.完全二叉树的节点个数.md
增加完全二叉树写法2,更易理解且减少非完全二叉树节点的迭代次数
This commit is contained in:
@ -379,6 +379,20 @@ class Solution:
|
|||||||
return (2 << leftDepth) - 1 #注意(2<<1) 相当于2^2,所以leftDepth初始为0
|
return (2 << leftDepth) - 1 #注意(2<<1) 相当于2^2,所以leftDepth初始为0
|
||||||
return self.countNodes(root.left) + self.countNodes(root.right) + 1
|
return self.countNodes(root.left) + self.countNodes(root.right) + 1
|
||||||
```
|
```
|
||||||
|
完全二叉树写法2
|
||||||
|
```python
|
||||||
|
class Solution: # 利用完全二叉树特性
|
||||||
|
def countNodes(self, root: TreeNode) -> int:
|
||||||
|
if not root: return 0
|
||||||
|
count = 1
|
||||||
|
left = root.left; right = root.right
|
||||||
|
while left and right:
|
||||||
|
count+=1
|
||||||
|
left = left.left; right = right.right
|
||||||
|
if not left and not right: # 如果同时到底说明是满二叉树,反之则不是
|
||||||
|
return 2**count-1
|
||||||
|
return 1+self.countNodes(root.left)+self.countNodes(root.right)
|
||||||
|
```
|
||||||
|
|
||||||
## Go
|
## Go
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user