zoukankan      html  css  js  c++  java
  • 边工作边刷题:70天一遍leetcode: day 10-1

    Binary Tree Postorder Traversal

    这题前面提过,思维方式就是每一层先检查是不是从上到下,然后检查是不是从左边回来的,最后如果是从右边回来的,后续访问。
    错误点: 从上到下的时候left和right进栈是if/else的关系

    # 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 postorderTraversal(self, root):
            """
            :type root: TreeNode
            :rtype: List[int]
            """
            res = []
            if not root: return res
            pre = None
            stk = [root]
            while stk:
                cur = stk[-1]
                if not pre or pre.left==cur or pre.right==cur:
                    if cur.left:
                        stk.append(cur.left)
                    elif cur.right:
                        stk.append(cur.right)
                elif cur.left==pre:
                    if cur.right:
                        stk.append(cur.right)
                else:
                    stk.pop()
                    res.append(cur.val)
                pre = cur
            return res
    
    
  • 相关阅读:
    安全和加密
    awk
    CentOS7练习
    CentOS7系统引导顺序以及排障
    网络配置
    RAID阵列搭建
    LVM逻辑卷
    java-web——第九课 request
    java-web——第八课 JSTL的显示格式
    java-web——第七课 JSTL
  • 原文地址:https://www.cnblogs.com/absolute/p/5675779.html
Copyright © 2011-2022 走看看