LeetCode:Binary Tree Inorder Traversal

Binary Tree Inorder Traversal




Total Accepted: 126544  Total Submissions: 316559  Difficulty: Medium

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.

Subscribe to see which companies asked this question

Hide Tags
  Tree Hash Table Stack
Hide Similar Problems
  (M) Validate Binary Search Tree (M) Binary Tree Preorder Traversal (H) Binary Tree Postorder Traversal(M) Binary Search Tree Iterator (M) Kth Smallest Element in a BST (H) Closest Binary Search Tree Value II (M) Inorder Successor in BST





















c++ code:

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    vector inorderTraversal(TreeNode* root) {
        vector ivec;
        TreeNode *p=root;
        stack s;
        while(p || !s.empty()){
            while(p){
                s.push(p);
                p=p->left;
            }
            if(!s.empty()){
                p=s.top();
                ivec.push_back(p->val);
                s.pop();
                p=p->right;
            }
        }
        return ivec;
    }
};

你可能感兴趣的:(LeetCode,OJ,LeetCode解题记录)