python 层序遍历
时间: 2023-11-17 13:00:38 浏览: 34
Python中二叉树的层序遍历可以使用队列实现,具体实现方法如下所示:
```python
from queue import Queue
def level_order_traversal(node):
queue = Queue()
queue.put(node)
while not queue.empty():
"""出队并打印"""
node = queue.get()
print(node.data)
"""左右子节点入队"""
if node.left is not None:
queue.put(node.left)
if node.right is not None:
queue.put(node.right)
```
其中,`Queue()`是Python内置的队列数据结构,`put()`方法用于将元素入队,`get()`方法用于将元素出队。在层序遍历中,我们首先将根节点入队,然后依次出队并打印节点的值,同时将其左右子节点入队,直到队列为空。
相关问题
Python二叉树层序遍历
Python中实现二叉树层序遍历可以使用队列来实现。具体过程如下:
1. 首先,将根节点入队。
2. 在每个循环中,取出队列的头部元素,并将其值存入结果列表中。
3. 如果该节点存在左子树,将其左子树入队。
4. 如果该节点存在右子树,将其右子树入队。
5. 重复步骤2-4,直到队列为空。
下面是Python实现二叉树层序遍历的代码:
```
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def levelOrder(root: TreeNode) -> List[List[int]]:
if not root:
return []
res = []
queue = [root]
while queue:
level = []
n = len(queue)
for i in range(n):
node = queue.pop(0)
level.append(node.val)
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
res.append(level)
return res
```
python二叉树层序遍历
二叉树的层序遍历可以通过不同的方法实现。其中一种方法是使用队列的思想。每次循环遍历一层的节点,将其子节点加入队列,并将遍历的值加入结果中。以下是一个用Python实现的例子:
```python
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution(object):
def levelOrder(self, root):
"""
:type root: TreeNode
:rtype: List[List[int]]
"""
<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [二叉树的层序遍历(Python语言)](https://blog.csdn.net/attitude36/article/details/110144216)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [python数据结构之树(2)—— 二叉树遍历|CSDN创作打卡](https://blog.csdn.net/weixin_55073640/article/details/122758286)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [二叉树的层序遍历Python解法](https://blog.csdn.net/qq_43593534/article/details/123800081)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]