LeetCode:Binary Tree Inorder Traversal

Binary Tree Inorder Traversal


Total Accepted: 123254  Total Submissions: 310274  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<int> inorderTraversal(TreeNode* root) {
        vector<int> ivec;
        TreeNode *p=root;
        stack<TreeNode *> 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,tree,binary,Inorder)