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(); } } };

浙公网安备 33010602011771号