Update 0222.完全二叉树的节点个数.md

增加完全二叉树写法2,更易理解且减少非完全二叉树节点的迭代次数
This commit is contained in:
ZerenZhang2022
2023-03-16 19:55:49 -04:00
committed by GitHub
parent 518c1436f0
commit 9a4086cd36

View File

@ -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