binarytree二叉树节点DFS深度优先搜索遍历,递归,python

Posted zhangphil

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了binarytree二叉树节点DFS深度优先搜索遍历,递归,python相关的知识,希望对你有一定的参考价值。

binarytree二叉树节点DFS深度优先搜索遍历,递归,python

import random

from binarytree import build


def app():
    data = []
    for i in range(13):
        data.append(i)
    random.shuffle(data)

    root = build(data)
    root.pprint(index=True, delimiter=',')

    paths = []

    print('-----')
    my_dfs_travel(root, paths)
    print('深度遍历', paths)


# 深度遍历,从左至右,递归实现
def my_dfs_travel(root, paths):
    if root == None:
        return

    paths.append(root.value)

    if root.left != None:
        my_dfs_travel(root.left, paths)
    if root.right != None:
        my_dfs_travel(root.right, paths)


if __name__ == '__main__':
    app()

输出:


                ________________0,7_______________
               /                                  \\
        _____1,6______                      ______2,5_
       /              \\                    /          \\
   __3,4_           __4,0__            __5,2_         6,9
  /      \\         /       \\          /      \\
7,12     8,3     9,11     10,10     11,8     12,1

-----
深度遍历 [7, 6, 4, 12, 3, 0, 11, 10, 5, 2, 8, 1, 9]

以上是关于binarytree二叉树节点DFS深度优先搜索遍历,递归,python的主要内容,如果未能解决你的问题,请参考以下文章

二叉搜索树BST节点DFS深度优先搜索遍历,基于栈,非递归,binarytree,python

深度优先搜索DFS

binarytree二叉树节点BFS广度优先搜索遍历,递归,python

算法二叉树相关算法

二叉树深度优先搜索n个台阶,一次走一步,走两步,走三步,有多少种可能

binarytree二叉树节点BFS广度优先搜索遍历,基于队列,非递归,python