zoukankan      html  css  js  c++  java
  • 前中后序递归遍历树的体会 with Python

    • 前序:跟->左->右
    • 中序:左->根->右
    • 后序:左>右->根

    采用递归遍历时,编译器/解释器负责将递归函数调用过程压入栈并保护现场,在不同位置处理根节点即可实现不同顺序的遍历。

    import Tree
    
    def preOrderTraversal(root):
        if root:
            # do some processing on root here (in front of traversal)
            print(root.val)
            preOrderTraversal(root.left)
            preOrderTraversal(root.right)
    
    
    def inOrderTraversal(root):
        if root:
            inOrderTraversal(root.left)
            # do some processing on root here
            print(root.val)
            inOrderTraversal(root.right)
    
    
    def postOrderTraversal(root):
        if root:
            postOrderTraversal(root.left)
            postOrderTraversal(root.right)
            # do some processing on root here
            print(root.val)
    
    nums = [6, 4, 7, 2, 5, None, None, 1, 3]
    root = Tree.buidTree(nums)
    
    preOrderTraversal(root)
    print('
    ')
    inOrderTraversal(root)
    print('
    ')
    postOrderTraversal(root)

    前中后序遍历结果分别如下:
    6 4 2 1 3 5 7

    1 2 3 4 5 6 7

    1 3 2 5 4 7 6

  • 相关阅读:
    学习进度四
    每日进度二
    每日进度一
    学习进度三
    学习进度二
    安全性战术
    Linux 常用命令
    python测试框架之pytest
    Python 列表生成式和字典生成式
    使用Python在Windows 10上显示通知信息
  • 原文地址:https://www.cnblogs.com/gradual/p/9958088.html
Copyright © 2011-2022 走看看