leetcode

来源:互联网 发布:淘宝必须交保证金吗 编辑:程序博客网 时间:2024/05/12 08:42

Binary Tree Inorder Traversal

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

For example:

Given binary tree [1,null,2,3],

  1   \    2   /  3

return [1,3,2].

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

Solution1:

  public List<Integer> inorderTraversal(TreeNode root) {    if (root == null) {      return new ArrayList<>();    }    List<Integer> result = inorderTraversal(root.left);    result.add(root.val);    result.addAll(inorderTraversal(root.right));    return result;  }

Solution2:

  public List<Integer> inorderTraversal(TreeNode root) {    List<Integer> list = new ArrayList<Integer>();    LinkedList<TreeNode> stack = new LinkedList<TreeNode>();    TreeNode cur = root;    while (cur != null || !stack.isEmpty()) {      while (cur != null) {        stack.push(cur);        cur = cur.left;      }      cur = stack.pop();      list.add(cur.val);      cur = cur.right;    }    return list;  }
0 0
原创粉丝点击