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

    给你二叉树的根节点 root ,返回它节点值的 前序 遍历。
    
     
    
    示例 1:
    
    
    输入:root = [1,null,2,3]
    输出:[1,2,3]
    示例 2:
    
    输入:root = []
    输出:[]
    示例 3:
    
    输入:root = [1]
    输出:[1]
    示例 4:
    
    
    输入:root = [1,2]
    输出:[1,2]
    示例 5:
    
    
    输入:root = [1,null,2]
    输出:[1,2]
     
    
    提示:
    
    树中节点数目在范围 [0, 100] 内
    -100 <= Node.val <= 100
     
    
    进阶:递归算法很简单,你可以通过迭代算法完成吗?
    
    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/binary-tree-preorder-traversal
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
    
    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, val=0, left=None, right=None):
    #         self.val = val
    #         self.left = left
    #         self.right = right
    class Solution:
        def preorderTraversal(self, root: TreeNode) -> List[int]:
            if not root :return []
            return [root.val]+self.preorderTraversal(root.left)+self.preorderTraversal(root.right)
    
    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, val=0, left=None, right=None):
    #         self.val = val
    #         self.left = left
    #         self.right = right
    class Solution:
        def preorderTraversal(self, root: TreeNode) -> List[int]:
            def preOrder(r:TreeNode)->None:
                if not r:return
                ls.append(r.val)
                preOrder(r.left)
                preOrder(r.right)
                     
            ls=[]
            preOrder(root)
            return ls
    
    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, val=0, left=None, right=None):
    #         self.val = val
    #         self.left = left
    #         self.right = right
    class Solution:
        def preorderTraversal(self, root: TreeNode) -> List[int]:
            if not root :return []
            ls=[]
            stack=[]
            cur=root
            
            while(stack or cur):
                while cur:
                    ls.append(cur.val)
                    stack.append(cur)
                    cur=cur.left
                cur=stack.pop()            
                cur=cur.right
            return ls
    
  • 相关阅读:
    Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'
    ptconfigdiff的使用
    freebsd上安装sudo
    vm9.02的序列号
    pttablechecksum
    "Makefile", line 3: Need an operator
    nc的使用
    vs2005自带的水晶报表破解方法
    [vs2008环境]绑定水晶报表的两种方式(Pull和Push)
    .NET环境下水晶报表使用总结
  • 原文地址:https://www.cnblogs.com/hqzxwm/p/14091134.html
Copyright © 2011-2022 走看看