力扣 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;
    }
};
posted @ 2022-11-02 17:00  付玬熙  阅读(14)  评论(0编辑  收藏  举报