Python二叉树深度与广度优先遍历实现详解

Leo
Leo
发布时间:2026-10-13| 5人浏览过
原创

本文介绍Python中二叉树的两种核心遍历方式:深度优先遍历(DFS)与广度优先遍历(BFS)。深度遍历基于递归逻辑,遵循“根-左-右”顺序;广度遍历结合队列思想,逐层访问节点。文章通过Node类定义树结构,并展示具体的递归实现代码,帮助开发者理解遍历算法的本质与Python编码技巧。

深度优先遍历(DFS)

其核心原则是遵循“从上到下、从左到右”的访问顺序。

具体逻辑实现主要依赖递归机制,步骤如下:

首先定位并访问根节点;

接着递归处理根节点的左子树;

最后递归处理根节点的右子树。

class Node(object):
 def __init__(self, item=None, left=None, right=None):
  self.item = item
  self.left = left
  self.right = right
 
 
d = Node("D")
e = Node("E")
b = Node("B", d, e)
f = Node("F")
g = Node("G")
c = Node("C", f, g)
a = Node("A", b, c)
 
 
result = []
 
 
def deep_search(root):
 # 深度遍历 核心:递归
 result.append(root.item)
 if root.left:
  deep_search(root.left)
 if root.right:
  deep_search(root.right)
 return "-->".join(result)
 
 
print deep_search(a)

广度优先遍历(BFS)

该算法的核心在于结合队列数据结构与递归逻辑进行逐层访问。

def wide_search(root, result=[]):
 
 if not result:
  result.append(root.item)
 if root.left:
  result.append(root.left.item)
 if root.right:
  result.append(root.right.item)
 if root.left:
  wide_search(root.left)
 if root.right:
  wide_search(root.right)
 return "-->".join(result)
 
 
print wide_search(a)

以上关于Python实现二叉树深度与广度遍历的方法介绍完毕,希望能为读者提供有益参考。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。