• 144. 二叉树的前序遍历(非递归)


    给你二叉树的根节点 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) {
            if(root == nullptr) return {};
            stack<TreeNode* >s;
            vector<int> ans;
            while(root || !s.empty()){
                while(root){
                    ans.push_back(root->val);
                    s.push(root);
                    root = root->left;
                }
                root = s.top();
                s.pop();
                root = root->right;
            }
            return ans;
        }
    };
  • 相关阅读:
    viewpoint vw适配 兼容方案
    函数参数默认值
    vue v-bind 的prop属性
    vue 全局错误处理 errorHandler
    Python模块学习
    频谱共享---小记
    LTE的信道
    PLMN(公共陆地移动网络)
    单元测试框架GoogleTest
    OpenRAN是什么
  • 原文地址:https://www.cnblogs.com/AbsolutelyPerfect/p/14943633.html
Copyright © 2020-2023  润新知