• LeetCode 94 二叉树中序遍历


    LeetCode 94 二叉树中序遍历

    题目描述:给定一个二叉树,返回它的中序遍历。

    执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户
    内存消耗:38.2 MB, 在所有 Java 提交中击败了14.07%的用户

    递归

    class Solution {
        public List<Integer> inorderTraversal(TreeNode root) {
            List<Integer> result = new ArrayList<Integer>();
            dfs(root, result);
            return result;
        }
    
        public void dfs(TreeNode root, List<Integer> inorderTraversal) {
            if(root==null) {
                return;
            }
            else{
                //左、根、右
                dfs(root.left, inorderTraversal);
                inorderTraversal.add(root.val);
                dfs(root.right, inorderTraversal);
            }
            return;
        }
    }
    

    非递归: 使用栈

    1. 对于某个非空根节点,将其入栈
    2. 若根节点左子节点不为空,重复1步骤;否则进入3步骤
    3. 因为左子节点为空(无左子树/访问完毕),因此将栈顶根节点弹出并访问
    4. 若根节点有子节点不为空,重复1步骤;否则重复3步骤

    执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户
    内存消耗:38 MB, 在所有 Java 提交中击败了44.37%的用户

    class Solution {
        public List<Integer> inorderTraversal(TreeNode root) {
            List<Integer> result = new ArrayList<Integer>();
            //使用栈进行非递归形式遍历
            List<TreeNode> stack = new ArrayList<TreeNode>();
            TreeNode node = root;
            while(!stack.isEmpty() || node!=null){
                if(node!=null) {
                    stack.add(node);
                    node = node.left;
                }
                else if(node==null) {
                    node = stack.get(stack.size()-1);
                    result.add(node.val);
                    stack.remove(stack.size()-1);
                    node = node.right;
                }
            }
            return result;
        }
    }
    
  • 相关阅读:
    _DataStructure_C_Impl:图的邻接矩阵存储
    ios的单元測试OCUnit以及更新了之后的XCTestCase
    java之 ------ 可变參数和卫条件
    【能力提升】SQL Server常见问题介绍及高速解决建议
    NYOJ 116 士兵杀敌 (线段树,区间和)
    Spring和MyBatis环境整合
    TypeScript和JavaScript的一些小技巧记录
    VSCode配置TypeScript
    function 与 => 的区别
    Egret里用矢量挖圆形的洞
  • 原文地址:https://www.cnblogs.com/CodeSPA/p/13529023.html
Copyright © 2020-2023  润新知