public List inorderTraversal(TreeNode root) { List list = new LinkedList<>(); inorderTraversal(root,list); return list; } public void inorderTraversal(TreeNode root, List list) { if (root==null){ return; } inorderTraversal(root.left,list); list.add(root.val); inorderTraversal(root.right,list); }
迭代解法
public List inorderTraversal(TreeNode root) { LinkedList list = new LinkedList<>(); if (root==null){ return list ; } Stack stack = new Stack<>(); TreeNode node=root; while (!stack.isEmpty()&&node!=null){ if (node!=null){ stack.add(node); node=node.left; }else{ list.add(stack.peek().val); node=stack.pop().right; } } return list; }