Wednesday, October 11, 2017

94. Binary Tree Inorder Traversal

https://leetcode.com/problems/binary-tree-inorder-traversal/description/
Solution 1. Recursion.
    void inOrder(TreeNode*node, vector<int>& res) {
        if(!node) return;
        inOrder(node->left, res);
        res.push_back(node->val);
        inOrder(node->right, res);
    }
    vector<int> inorderTraversal(TreeNode* root) {
        vector<int> res;
        inOrder(root, res);
        return res;
    }
Solution 2. Iteration
    vector<int> inorderTraversal(TreeNode* root) {
        vector<int> res;
        stack<TreeNode*> st;
        TreeNode* node = root;
        while(!st.empty() || node) {
            if(node) {
                st.push(node);
                node = node->left;
            }
            else {
                node = st.top();
                st.pop();
                res.push_back(node->val);
                node = node->right;
            }
        }
        return res;
    }

No comments:

Post a Comment