zoukankan      html  css  js  c++  java
  • [LeetCode]题解(python):144-Binary Tree Preorder Traversal

    题目来源:

      https://leetcode.com/problems/binary-tree-preorder-traversal/


    题意分析:

      前序遍历一棵树,递归的方法很简单。那么非递归的方法呢。


    题目思路:

      前序遍历的顺序是先遍历根节点,再遍历左子树,最后遍历右子树。递归的方法很直观。非递归的方法是利用栈来实现,后进先出,先放右子树进入栈。代码给的是非递归的方法。


    代码(python):

    # Definition for a binary tree node.
    # class TreeNode(object):
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    
    class Solution(object):
        def preorderTraversal(self, root):
            """
            :type root: TreeNode
            :rtype: List[int]
            """
            ans = []
            if root == None:
                return ans
            stack = [root]
            while len(stack) != 0:
                p = stack.pop()
                ans.append(p.val)
                if p.right:
                    stack.append(p.right)
                if p.left:
                    stack.append(p.left)
            return ans
    View Code
  • 相关阅读:
    Calendar日历类
    DateFormat类和SimpleDateFormat类
    Date时间类(java.util.Date)
    时间处理相关类
    不可变和可变字符序列使用陷阱
    String类
    搬圆桌问题
    重温经典之排序 java实现
    i++ 和 ++i
    Intellij Idea 使用技巧 updating
  • 原文地址:https://www.cnblogs.com/chruny/p/5477537.html
Copyright © 2011-2022 走看看