Update 0102.二叉树的层序遍历.md

This commit is contained in:
jianghongcheng
2023-05-03 20:01:07 -05:00
committed by GitHub
parent 42f85c8a8f
commit 52092d0153

View File

@ -835,35 +835,35 @@ public:
python代码 python代码
```python ```python
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution: class Solution:
def rightSideView(self, root: TreeNode) -> List[int]: def rightSideView(self, root: TreeNode) -> List[int]:
if not root: if not root:
return [] return []
# deque来自collections模块不在力扣平台时需要手动写入 queue = collections.deque([root])
# 'from collections import deque' 导入 right_view = []
# deque相比list的好处是list的pop(0)是O(n)复杂度deque的popleft()是O(1)复杂度
quene = deque([root]) while queue:
out_list = [] level_size = len(queue)
while quene: for i in range(level_size):
# 每次都取最后一个node就可以了 node = queue.popleft()
node = quene[-1]
out_list.append(node.val) if i == level_size - 1:
right_view.append(node.val)
# 执行这个遍历的目的是获取下一层所有的node
for _ in range(len(quene)):
node = quene.popleft()
if node.left: if node.left:
quene.append(node.left) queue.append(node.left)
if node.right: if node.right:
quene.append(node.right) queue.append(node.right)
return out_list return right_view
# 执行用时36 ms, 在所有 Python3 提交中击败了89.47%的用户
# 内存消耗14.6 MB, 在所有 Python3 提交中击败了96.65%的用户
``` ```