leetcode | binary-tree-inorder-traversal

来源:互联网 发布:上海模型店淘宝地址 编辑:程序博客网 时间:2024/04/28 02:06

题目描述


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

For example:
Given binary tree{1,#,2,3},

   1    \     2    /   3


return[1,3,2].

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

confused what"{1,#,2,3}"means? > read more on how binary tree is serialized on OJ.


OJ's Binary Tree Serialization:

The serialization of a binary tree follows a level order traversal, where '#' signifies a path terminator where no node exists below.

Here's an example:

   1  / \ 2   3    /   4    \     5
The above binary tree is serialized as"{1,2,3,#,#,4,#,#,5}".

public ArrayList<Integer> postorderTraversal(TreeNode root) {        Stack<TreeNode> stack = new Stack<>();        ArrayList<Integer> arrayList = new ArrayList<>();        while (root!=null || !stack.isEmpty())        {            if(root!=null)            {                stack.push(root);                root = root.left;            }            else if(!stack.isEmpty())            {                root = stack.pop();                arrayList.add(root.val);                root = root.right;            }        }        return arrayList;    }


0 0
原创粉丝点击