LeetCode 94 Binary Tree Inorder Traversal

·  阅读 105

LeetCode 94 Binary Tree Inorder Traversal

思路

递归很简单写出来,主要说迭代的思路。

有stack存储节点。每次loop,一直往左下方走,将路径上的节点全部入栈。找到最左边的节点后,输出该节点,然后从该节点的右子树重复这个过程。此思路的本质是将父节点划归至寻找最左节点的路径中,从而压入栈。

代码

class Solution {
public:
    vector<int> inorderTraversal(TreeNode* root) {
        vector<int> rs;
        stack<TreeNode*> stk;
        
        while(root || !stk.empty()) {
            while(root) {
                stk.push(root);
                root = root->left;
            }
            
            root = stk.top();
            stk.pop();
            rs.push_back(root->val);
            root = root->right;
        }
        
        return rs;
    }
};
分类:
阅读
标签:
分类:
阅读
标签:
收藏成功!
已添加到「」, 点击更改