94. Binary Tree Inorder Traversal 发表于 2021-11-13 Recursion12345678910111213141516171819class Solution { public List<Integer> inorderTraversal(TreeNode root) { // left -> root -> right List<Integer> list = new LinkedList<>(); recur(list, root); return list; } private void recur(List<Integer> list, TreeNode node) { if (node == null) { return; } recur(list, node.left); list.add(node.val); recur(list, node.right); }} Iterate12345678910111213141516171819202122class Solution { public List<Integer> inorderTraversal(TreeNode root) { // left -> root -> right List<Integer> numList = new ArrayList<>(); Stack<TreeNode> stack = new Stack<>(); while (!stack.isEmpty() || root != null) { while (root != null) { stack.push(root); root = root.left; } // now: root is null TreeNode node = stack.pop(); numList.add(node.val); root = node.right; } return numList; }} Reference94. Binary Tree Inorder Traversal