leetcode257.二叉树的所有路径

解法1:DFS

这题的思路是使用前序遍历,然后记住string参数这里只能值传递,不能引用传递,只有使用值传递才能保证每个调用栈才能使用不同的string副本!

cpp 复制代码
class Solution {
public:
    vector<string> binaryTreePaths(TreeNode* root) {
        vector<string> v;
        string s;
        dfs(root,v,s);
        return v;
    }
    
    void dfs(TreeNode* node,vector<string>& v,string s){
        if(node){
            s.append(to_string(node->val));
            if(!node->left&&!node->right){
                v.push_back(s);
                
            }else{
                s.append("->");
                dfs(node->left,v,s);
                dfs(node->right,v,s);
            }
        }
    }
};

解法2:BFS

手写一算就懂了!

cpp 复制代码
class Solution {
public:
    vector<string> binaryTreePaths(TreeNode* root) {
        vector<string> v;
        queue<TreeNode*> node_q;
        queue<string> path_q;
        bfs(v,root,node_q,path_q);
        return v;
    }
    void bfs(vector<string>& v,TreeNode* root,queue<TreeNode*>& node_q,queue<string>& path_q){
        node_q.push(root);
        path_q.push(to_string(root->val));
        while(!node_q.empty()){
            TreeNode* node=node_q.front();
            string path = path_q.front();
            node_q.pop();
            path_q.pop();
            if(!node->left&&!node->right){
                v.push_back(path);
            }else{
                if(node->left){
                    node_q.push(node->left);
                    path_q.push(path+"->"+to_string(node->left->val));
                }
                if(node->right){
                    node_q.push(node->right);
                    path_q.push(path+"->"+to_string(node->right->val));
                }
            }
        }
    }
};
相关推荐
掘金安东尼15 分钟前
Amazon Lambda + API Gateway 实战,无服务器架构入门
算法·架构
码流之上1 小时前
【一看就会一写就废 指间算法】设计电子表格 —— 哈希表、字符串处理
javascript·算法
快手技术3 小时前
快手提出端到端生成式搜索框架 OneSearch,让搜索“一步到位”!
算法
CoovallyAIHub1 天前
中科大DSAI Lab团队多篇论文入选ICCV 2025,推动三维视觉与泛化感知技术突破
深度学习·算法·计算机视觉
NAGNIP1 天前
Serverless 架构下的大模型框架落地实践
算法·架构
moonlifesudo1 天前
半开区间和开区间的两个二分模版
算法
moonlifesudo1 天前
300:最长递增子序列
算法
CoovallyAIHub1 天前
港大&字节重磅发布DanceGRPO:突破视觉生成RLHF瓶颈,多项任务性能提升超180%!
深度学习·算法·计算机视觉
CoovallyAIHub1 天前
英伟达ViPE重磅发布!解决3D感知难题,SLAM+深度学习完美融合(附带数据集下载地址)
深度学习·算法·计算机视觉
聚客AI2 天前
🙋‍♀️Transformer训练与推理全流程:从输入处理到输出生成
人工智能·算法·llm