257. 二叉树的所有路径
给你一个二叉树的根节点 root
,按 任意顺序 ,返回所有从根节点到叶子节点的路径。
叶子节点 是指没有子节点的节点。
示例 1:
输入:root = [1,2,3,null,5]
输出:["1->2->5","1->3"]
示例 2:
输入:root = [1]
输出:["1"]
提示:
- 树中节点的数目在范围
[1, 100]
内 -100 <= Node.val <= 100
题解
通过dfs,同时记录路径。
查看代码
class Solution {
public:
vector<string> res;
void work(TreeNode* cur,string path){
if(cur->left==NULL&&cur->right==NULL){
res.emplace_back(path);
}
if(cur->left)
work(cur->left,path+"->"+to_string(cur->left->val));
if(cur->right)
work(cur->right,path+"->"+to_string(cur->right->val));
}
vector<string> binaryTreePaths(TreeNode* root) {
if(root==NULL)
return res;
work(root,to_string(root->val));
return res;
}
};