wfxr
10/24/2016 - 5:59 AM

二叉树中序遍历

二叉树中序遍历

class Solution {
public:
    vector<int> inorderTraversal(TreeNode* root) {
        vector<int> res;
        stack<TreeNode*> st;
        fillStack(root, st);
        while (!st.empty()) {
            root = st.top();
            st.pop();
            res.push_back(root->val);
            fillStack(root->right, st);
        }
        return res;
    }
private:
    void fillStack(TreeNode* node, stack<TreeNode*> &st) {
        for (; node; node = node->left)
            st.push(node);
    }
};