Geek

博客园 首页 新随笔 联系 订阅 管理

中序遍历

给出一棵二叉树,返回这棵树的中序遍历
例如:
给出的二叉树为{1,#,2,3},



typedef TreeNode Node;
class Solution {
public:
    /**
     * 
     * @param root TreeNode类 
     * @return int整型vector
     */
    vector<int> inorderTraversal(TreeNode* root) {
        if(root==NULL) return {};
        // write code here
        stack<Node*> stack;
        
        //左 -> 根 -> 右
        vector<int> res;
        Node* f = root;
        while(stack.size() || f) {
            while(f) {
                stack.push(f),f = f->left;
            }
             
            f = stack.top();stack.pop();
            res.push_back(f->val);
            f = f->right;
              
            
        }
        return res;
        
        
    }
    
    
    
};

posted on 2021-01-25 19:27  .geek  阅读(53)  评论(0编辑  收藏  举报