二叉树的深度优先搜索和广度优先搜索 python
程序员文章站
2022-05-22 21:13:46
...
二叉树的深度优先搜索和广度优先搜索 python
描述
深度优先搜索,先遍历左子树,再遍历右子树
广度优先搜索,相当于直接横向打印二叉树
深度优先搜索使用栈,先进后出
将根节点append进栈,将根节点弹出,先进入右子节点,再进入左子节点
import collections
stack = []
stack.append(root)
while stack:
node = stack.pop()
if node.right is not None:
stack.append(node.right)
if node.left is not None:
stack.append(node.left)
print(node.val)
广度优先搜索使用队列,先进先出
将根节点先append进入队列,然后将根节点弹出,先append进左子节点,再append右子节点
import collections
deque = collections.deque()
deque.append(root)
while deque:
node = deque.popleft()
if node.left is not None:
deque.append(node.left)
if node.right is not None:
deque.append(node.right)
print(node.val)
上一篇: 双面if
下一篇: nginx中的脚本(实战篇)