zoukankan      html  css  js  c++  java
  • LeetCode 94. 二叉树的中序遍历

    94. 二叉树的中序遍历

    Difficulty: 中等

    给定一个二叉树的根节点 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

    进阶: 递归算法很简单,你可以通过迭代算法完成吗?

    Solution

    二叉树的中序遍历,迭代算法。

    # 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]:
            res, stack = [], []
            while True:
                while root:
                    stack.append(root)
                    root = root.left
                if not stack:
                    break
                node = stack.pop()
                res.append(node.val)
                root = node.right
            return res
    

    递归

    class Solution:
        def inorderTraversal(self, root: TreeNode) -> List[int]:
            if not root:
                return []
            else:
                l = self.inorderTraversal(root.left)
                d = [root.val]
                r = self.inorderTraversal(root.right)
                return l + d + r
    
  • 相关阅读:
    使用jsonp跨域调用百度js实现搜索框智能提示(转)
    jsonp 跨域
    Aixs2发布webservice服务
    java web service 上传下载文件
    java 网页 保存上传文件
    flash、js 函数 互相调用
    java web工程启动socket服务
    mysql 在Windows下自动备份
    Servlet中几个常用方法的推衍
    Tomcat常用设置 <持续更新>
  • 原文地址:https://www.cnblogs.com/swordspoet/p/14589988.html
Copyright © 2011-2022 走看看