lc94.java 968 字节
Newer Older
L
liu13 已提交
1 2 3
package code;
/*
 * 94. Binary Tree Inorder Traversal
L
liu13 已提交
4
 * 题意:
L
liu13 已提交
5 6
 * 难度:Medium
 * 分类:HashTable, Stack, Tree
L
liu13 已提交
7
 * 思路:左节点依次入栈二叉树中序遍历
L
liu13 已提交
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
 * Tips:和lc144前序,lc145后序一起看
 */
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;

public class lc94 {
    public class TreeNode {
        int val;
        TreeNode left;
        TreeNode right;
        TreeNode(int x) { val = x; }
    }
    public List<Integer> inorderTraversal(TreeNode root) {
        List<Integer> res = new ArrayList<>();
        if(root==null)
            return res;
        Stack<TreeNode> st = new Stack();
        while( !st.isEmpty() || root!=null ) {      //注意停止条件
            while (root != null) {
                st.push(root);
                root = root.left;
            }
            root = st.pop();
            res.add(root.val);
            root = root.right;
        }
        return res;
    }
}