zoukankan      html  css  js  c++  java
  • 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;
        }
    }
    
  • 相关阅读:
    语音信号端点检测
    WEBPACK & BABEL 打包项目
    使用 Qt 获取 UDP 数据并显示成图片(2)
    QSS为Qt程序添加不一样的样式
    window 搜索大文件
    Idea java 编译发生 cannot find symbol
    JetBeans Tab键相关设置
    JetBean Rider 重命名 c# 程序集名
    Unity 导入其他工程
    列出当前文件夹下的以log结尾的文件名
  • 原文地址:https://www.cnblogs.com/CodeSPA/p/13529023.html
Copyright © 2011-2022 走看看