LeetCode(257)二叉树的所有路径

注意二叉树的深度遍历即先序、中序、后序遍历之一,sprintf中char c[n]的长度包括'\0'即数字的长度+1,在数字是-100时最长,长度为4+1即5,char c[4]会溢出

复制代码
/**
 * 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<TreeNode*>v;
    vector<string>v2;
    vector<string> binaryTreePaths(TreeNode* root) {
        dfs(root);
        return v2;
    }
    void dfs(TreeNode*root){
        if(root){
            v.push_back(root);
            if(root->left==nullptr&&root->right==nullptr){
                string s;
                for(int i=0;i<v.size();i++){
                    char c[5];
                    sprintf(c,"%d",v[i]->val);
                    s += c;
                    s += "->";
                }
                s.erase(s.size()-2,2);
                v2.push_back(s);
            }
            dfs(root->left);
            dfs(root->right);
            v.pop_back();
        }
    }
};
复制代码

 

posted @   智人心  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示