欢迎光临散文网 会员登陆 & 注册

144. 二叉树的前序遍历(迭代)

2023-07-19 16:47 作者:薄荷硬糖酱  | 我要投稿

144. 二叉树的前序遍历

难度简单

1088

给你二叉树的根节点 root ,返回它节点值的 前序 遍历。

 

示例 1:

输入:root = [1,null,2,3]输出:[1,2,3]

示例 2:

输入:root = []输出:[]

示例 3:

输入:root = [1]输出:[1]

示例 4:

输入:root = [1,2]输出:[1,2]

示例 5:

输入:root = [1,null,2]输出:[1,2]

 

提示:

  • 树中节点数目在范围 [0, 100] 内

  • -100 <= Node.val <= 100

 

进阶:递归算法很简单,你可以通过迭代算法完成吗?



代码:

/**

 * Definition for a binary tree node.

 * struct TreeNode {

 *     int val;

 *     TreeNode *left;

 *     TreeNode *right;

 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}

 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}

 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}

 * };

 */

class Solution {

public:

    vector<int> preorderTraversal(TreeNode* root) {

        stack<TreeNode*> sub;

        vector<int> ans;

        if(root==nullptr)return ans;

        sub.push(root);

        while(!sub.empty()){

            TreeNode *temp = sub.top();

            sub.pop();

            ans.push_back(temp->val);

            if(temp->right)sub.push(temp->right);

            if(temp->left)sub.push(temp->left);

        }

        return ans;

    }

};


144. 二叉树的前序遍历(迭代)的评论 (共 条)

分享到微博请遵守国家法律