• leetcode_94. 二叉树的中序遍历


    给定一个二叉树的根节点 root ,返回它的 中序 遍历。
    
     
    
    示例 1:
    
    
    输入:root = [1,null,2,3]
    输出:[1,3,2]
    示例 2:
    
    输入:root = []
    输出:[]
    示例 3:
    
    输入:root = [1]
    输出:[1]
    示例 4:
    
    
    输入:root = [1,2]
    输出:[2,1]
    示例 5:
    
    
    输入:root = [1,null,2]
    输出:[1,2]
     
    
    提示:
    
    树中节点数目在范围 [0, 100] 内
    -100 <= Node.val <= 100
     
    
    进阶: 递归算法很简单,你可以通过迭代算法完成吗?
    
    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/binary-tree-inorder-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 inorderTraversal(self, root: TreeNode) -> List[int]:
            if not root:return []
            return self.inorderTraversal(root.left)+[root.val]+self.inorderTraversal(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 inorderTraversal(self, root: TreeNode) -> List[int]:
            ls=[]
            stack=[]
            cur=root
            while( stack or cur):
                while cur:
                    stack.append(cur)
                    cur=cur.left
                cur=stack.pop()
                ls.append(cur.val)
                cur=cur.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 inorderTraversal(self, root: TreeNode) -> List[int]:
            ls=[]
            def dfs(root:TreeNode):
                if not root:return
                dfs(root.left)
                ls.append(root.val)
                dfs(root.right)
            dfs(root)
            return ls
    
  • 相关阅读:
    ES6-Generator
    ES6-Iterator & for...of循环
    ES6-Proxy and Reflect
    在Main中定义student的结构体,进行年龄从大到小依次排序录入学生信息。(结构体的用法以及冒泡排序)
    函数的调用(取两个整型变量中的最大值)
    将一个字符串数组的元素的顺序进行翻转。。
    枚举类型练习
    利用Arraylist输入学生的成绩,求出平均分和总分。
    简单的推箱子游戏(利用数组)
    枚举类型的声明
  • 原文地址:https://www.cnblogs.com/hqzxwm/p/14090846.html
Copyright © 2020-2023  润新知