Leetcode刷题笔记题解(C++):94. 二叉树的中序遍历

Leetcode刷题笔记题解(C++):94. 二叉树的中序遍历_第1张图片

Leetcode刷题笔记题解(C++):94. 二叉树的中序遍历_第2张图片

思路:利用栈做辅助来写算法, 具体流程可见下图:帮助理解

Leetcode刷题笔记题解(C++):94. 二叉树的中序遍历_第3张图片

class Solution {
public:
    vector inorderTraversal(TreeNode* root) {
    vector res;
    stack s;
    while(root||!s.empty()){
        if(root){
            s.push(root);
            root=root->left;
        }else{
            root=s.top();
            res.push_back(root->val);
            s.pop();
            root=root->right;
        }
    }
    return res;
}
};

 

你可能感兴趣的:(Leetcode算法题解,c++,算法,leetcode,二叉树,栈)