• [leedcode 94] Binary Tree Inorder Traversal


    Given a binary tree, return the inorder traversal of its nodes' values.

    For example:
    Given binary tree {1,#,2,3},

       1
        
         2
        /
       3
    

    return [1,3,2].

    Note: Recursive solution is trivial, could you do it iteratively?

    confused what "{1,#,2,3}" means? > read more on how binary tree is serialized on OJ.

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    public class Solution {
        //第一个是非递归解法:
        //借助栈数据结构,将最左侧的节点入栈,到达最左侧节点时,弹出栈顶,填入结果,然后遍历栈顶的右节点
        //第二种是递归,比较简单
       /* public List<Integer> inorderTraversal(TreeNode root) {
            List<Integer> res=new ArrayList<Integer>();
            Stack<TreeNode> stack=new Stack<TreeNode>();
            TreeNode node=root;
            while(!stack.empty()||node!=null){
                while(node!=null){
                    
                    stack.push(node);
                    node=node.left;
                }
                node=stack.pop();
                res.add(node.val);
                node=node.right;
            }
            return res;
        }*/
        List<Integer> res=new ArrayList<Integer>();
        public List<Integer> inorderTraversal(TreeNode root) {
            getInorder(root);
            return res;
        }
        public void getInorder(TreeNode root){
              if(root==null) return;
              inorderTraversal(root.left);
              res.add(root.val);
              inorderTraversal(root.right);
        }
    }
  • 相关阅读:
    Redis学习之(一)
    SpringMVC之学习(0)
    Node.js之Express三
    Node.js之Express二
    Node.js之Express一
    Node.js进程管理之进程集群
    Node.js进程管理之子进程
    Node.js其他模块
    Node.js进程管理之Process模块
    Node.js HTTP Server对象及GET、POST请求
  • 原文地址:https://www.cnblogs.com/qiaomu/p/4651921.html
Copyright © 2020-2023  润新知