zoukankan      html  css  js  c++  java
  • 144. 二叉树的前序遍历



    方法一:迭代代码一:

    class Solution(object):
        # 迭代
        def preorderTraversal(self, root):
            """
            :type root: TreeNode
            :rtype: List[int]
            """
            if not root:
                return []
            pre_stack = [root]
            ans = []
            while pre_stack:
                cur = pre_stack.pop()
                ans.append(cur.val)
                if cur.right:
                    pre_stack.append(cur.right)
                if cur.left:
                    pre_stack.append(cur.left)
            return ans
    

    迭代代码二:

    class Solution(object):
        # 迭代
        def preorderTraversal(self, root):
            """
            :type root: TreeNode
            :rtype: List[int]
            """
            if not root:
                return []
            pre_stack = []
            ans = []
            cur = root
            while pre_stack or cur:
                while cur:
                    ans.append(cur.val)
                    pre_stack.append(cur)
                    cur = cur.left
                temp = pre_stack.pop()
                cur = temp.right
            return ans
    

    方法二:递归

    class Solution(object):
        # 递归
        def preorderTraversal(self, root):
            """
            :type root: TreeNode
            :rtype: List[int]
            """
            if not root:
                return []
            return [root.val] + self.preorderTraversal(root.left) + self.preorderTraversal(root.right)
    
  • 相关阅读:
    静态文件
    orm多表操作
    thinkphp5.0模块设计
    thinkphp5.0URL访问
    thinkphp5.0入口文件
    thinkphp5.0生命周期
    thinkphp5.0架构总览
    thinkphp5.0目录结构
    thinkphp5.0开发规范
    thinkphp5.0安装
  • 原文地址:https://www.cnblogs.com/panweiwei/p/13585744.html
Copyright © 2011-2022 走看看