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
  • 相关阅读:
    STL next_permutation 全排列
    日期问题
    兰顿蚂蚁
    矩阵翻硬币
    数学问题-排列组合
    h5css3_03练习
    h5css3_03
    h5css3_02练习
    h5css3_02
    h5c3_01练习
  • 原文地址:https://www.cnblogs.com/chruny/p/5477537.html
Copyright © 2011-2022 走看看