方法一:DFS
遇到问题:string使用生疏,以及在对节点node1返回上级节点时对所需数据有关node1的部分进行删除:尝试使用pop进行删除但是由于string格式形式,导致失败,于是通过看解析将每个节点对应的数据保存在函数中,在返回上一级时调用保存在函数的数据进行操作
/*** 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<string> binaryTreePaths(TreeNode* root) {vector<string>result;string str;dfs(root,"",result);return result;}void dfs(TreeNode* root,string str,vector<string>&result){if(root==NULL){return;}str+=to_string(root->val);if(!root->left&&!root->right){result.emplace_back(str);}str+="->";dfs(root->left,str,result);dfs(root->right,str,result);}};
