二叉树的层次遍历递归
时间: 2024-05-10 13:11:30 浏览: 117
二叉树的层次遍历是一种广度优先搜索的算法,它按照从上到下、从左到右的顺序遍历二叉树的每个节点。递归实现层次遍历相对较为复杂,一般使用迭代的方式更为常见和简单。以下是二叉树层次遍历的递归实现方法:
首先,我们需要确定递归函数的参数。在层次遍历中,我们需要知道当前遍历的层数和当前节点的指针。
然后,我们可以定义一个辅助函数来实现递归。该函数将接收当前节点、当前层数和一个存储结果的容器作为参数。
在递归函数中,我们首先判断当前节点是否为空。如果为空,则直接返回。
然后,我们判断当前层数是否超过了结果容器的大小。如果超过了,则在结果容器中添加一个新的空层。
接下来,我们将当前节点的值添加到结果容器中对应的层。
最后,我们递归地调用函数来处理当前节点的左子树和右子树,同时将层数加1。
下面是二叉树层次遍历递归实现的代码示例:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def levelOrder(root):
result = []
helper(root, 0, result)
return result
def helper(node, level, result):
if not node:
return
if level >= len(result):
result.append([])
result[level].append(node.val)
helper(node.left, level + 1, result)
helper(node.right, level + 1, result)
```
这样,我们就可以通过调用`levelOrder`函数来获取二叉树的层次遍历结果。
阅读全文