LeetCode 94. 二叉树的中序遍历

下面的俩张图是 LeetCode上的题解https://leetcode-cn.com/problems/binary-tree-inorder-traversal/solution/die-dai-fa-by-jason-2/

我根据思路用Java做了实现,放在了最后。

PS:在学习的过程中,各路大神也给出了独特的思路,这里仅仅是一种,先掌握基础的,后有余力在多多学习、探索吧。

 

class Solution {
    public List<Integer> inorderTraversal(TreeNode root) {
        //中序遍历
        Stack<TreeNode> stack = new Stack<>();
        List<Integer> res = new ArrayList<>();
        TreeNode rt = root;

        while(rt != null || !stack.isEmpty()){
            while(rt != null){
                stack.push(rt);
                rt = rt.left;
            }
            TreeNode node = stack.pop();
            res.add(node.val);
            rt = node.right;
        }
        return res;
    }
}
原文地址:https://www.cnblogs.com/peanut-zh/p/13882099.html