Monday, November 25, 2013

LeetCode Problem : Binary Tree Inorder Traversal

Problem


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}".

Code


void it_r(TreeNode *node,vector<int>& out) {
    if(!node)
        return;
    it_r(node->left,out);
    out.push_back(node->val);
    it_r(node->right,out);
}
vector<int> inorderTraversal(TreeNode *root) {
    // IMPORTANT: Please reset any member data you declared, as
    // the same Solution instance will be reused for each test case.
    vector<int> out;
    it_r(root,out);
    return out;
}

No comments:

Post a Comment