Merge pull request #2553 from raydemo1/master

Update 0102.二叉树的层序遍历.md Python层序遍历递归法更简洁
This commit is contained in:
程序员Carl
2024-06-09 09:13:52 +08:00
committed by GitHub

View File

@ -201,7 +201,7 @@ class Solution:
return result return result
``` ```
```python ```python
# 递归法 #递归法
# Definition for a binary tree node. # Definition for a binary tree node.
# class TreeNode: # class TreeNode:
# def __init__(self, val=0, left=None, right=None): # def __init__(self, val=0, left=None, right=None):
@ -210,18 +210,24 @@ class Solution:
# self.right = right # self.right = right
class Solution: class Solution:
def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]: def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:
if not root:
return []
levels = [] levels = []
self.helper(root, 0, levels)
def traverse(node, level):
if not node:
return
if len(levels) == level:
levels.append([])
levels[level].append(node.val)
traverse(node.left, level + 1)
traverse(node.right, level + 1)
traverse(root, 0)
return levels return levels
def helper(self, node, level, levels):
if not node:
return
if len(levels) == level:
levels.append([])
levels[level].append(node.val)
self.helper(node.left, level + 1, levels)
self.helper(node.right, level + 1, levels)
``` ```