zoukankan      html  css  js  c++  java
  • 二叉树的前序、中序、后序遍历(python)

    前序:

     1 class Solution:
     2     def preorderTraversal(self, root: TreeNode) -> List[int]:
     3         res=[]
     4         stack=[]
     5         while root or stack:
     6             if root:
     7                 stack.append(root)
     8                 res.append(root.val)
     9                 root=root.left
    10             else:
    11                 root=stack.pop()
    12                 root=root.right
    13         return res

    后序:

     1 class Solution:
     2     def postorderTraversal(self, root: TreeNode) -> List[int]:
     3         stack=[]
     4         res=[]
     5         while root or stack:
     6             if root:
     7                 stack.append(root)
     8                 res.append(root.val)
     9                 root=root.right
    10             else:
    11                 root=stack.pop()
    12                 root=root.left
    13         return res[::-1]

    中序:

     1 class Solution:
     2     def inorderTraversal(self, root: TreeNode) -> List[int]:
     3         stack=[]
     4         res=[]
     5         while stack or root:
     6             if root:
     7                 stack.append(root)
     8                 root=root.left
     9             else:
    10                 root = stack.pop()
    11                 res.append(root.val)
    12                 root=root.right
    13         return res

    2019-12-27 21:56:55

  • 相关阅读:
    BTree和B+Tree详解
    python小技巧01递归解释内嵌
    Python实战171201筛选数据
    学术网站
    现代科技新闻
    人工智能——深度学习介绍
    时区缩写
    centos7忘记root密码
    centos7正确关机重启
    虚拟化漫谈
  • 原文地址:https://www.cnblogs.com/NPC-assange/p/12109846.html
Copyright © 2011-2022 走看看