LeetCode每日一题-二叉树的前序遍历

二叉树的前序遍历

给定一个二叉树,返回它的 前序 遍历。

在这里插入图片描述

class Solution {
public:
    vector<int> preorderTraversal(TreeNode* root) {
        // if(root) {
        //     vec_.push_back(root->val);
        //     preorderTraversal(root->left);
        //     preorderTraversal(root->right);
        // }
        // return vec_;

        if(!root) {
            return vec_;
        }

        stack<TreeNode*> st;
        TreeNode* cur = root;

        while(cur || !st.empty()) {
            while(cur) {
                st.push(cur);
                vec_.push_back(cur->val);
                cur = cur->left;
            }
            TreeNode* tmp = st.top();
            st.pop();
            if(tmp->right) {
                cur = tmp->right;
            }
        }

        return vec_;
    }

private:
    vector<int> vec_;
};

很简单,中规中矩

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页