欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

二叉树的深度优先搜索和广度优先搜索 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)
相关标签: leetcode