鱼C论坛

 找回密码
 立即注册
查看: 3642|回复: 8

[已解决]求助如何将二叉树递规改用循环来实现最简单的代码

[复制链接]
发表于 2023-5-11 17:51:18 | 显示全部楼层
可以使用队列来代替递归实现二叉树的遍历。

具体实现步骤如下:

1. 新建一个队列,将根节点入队。

2. 循环遍历队列,直到队列为空。

3. 在循环中,依次取出队头元素,将其左右子节点入队。

4. 对每个取出的节点进行相应操作,如输出节点值或将节点值存入数组中。

代码示例:
  1. def traverse(root):
  2.     if not root:
  3.         return
  4.     queue = []
  5.     queue.append(root)
  6.     while queue:
  7.         node = queue.pop(0)
  8.         # 对节点进行操作,如输出节点值
  9.         print(node.val)
  10.         if node.left:
  11.             queue.append(node.left)
  12.         if node.right:
  13.             queue.append(node.right)
复制代码

其中,root为二叉树的根节点,node为当前取出的节点,node.val为节点的值。如果要将节点值存入数组中,可以使用列表代替队列,并将节点值追加到列表中。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-17 04:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表