Leetcode257. 二叉树的所有路径

题目

给定一个二叉树,返回所有从根节点到叶子节点的路径。

说明: 叶子节点是指没有子节点的节点。

示例:

输入:

   1
 /   \
2     3
 \
  5
输出: ["1->2->5", "1->3"]
解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3

解题思路

用字符串记录路径,遍历二叉树一遍,遇到根节点则添加路径。

C++解法

class Solution {
public:
    vector<string> strings;
    vector<string> binaryTreePaths(TreeNode * root) {
        strings.clear();
        if (root == NULL) return strings;
        travel(root, "");
        return strings;
    }
    
    void travel(TreeNode* root, string s) {
        string value = s.empty() ? to_string(root->val) : s + "->" + to_string(root->val);
        if (root->left == NULL && root->right == NULL) {
            strings.push_back(s);
        } else {
            if (root->left) travel(root->left, value);
            if (root->right) travel(root->right, value);
        }
    }
};

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/binary-tree-paths

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本文首发于我的个人博客:尾尾部落 0. 几个概念 完全二叉树:若二叉树的高度是h,除第h层之外,其他(1h-1)层...
    繁著阅读 3,241评论 3 49
  • LeetCode 第 104 题:二叉树的最大深度 提示:思路1:后序遍历:看完左右子树,才能计算自己; 思路2:...
    李威威阅读 880评论 0 4
  • 目录 简书的 markdown 都不支持 [TOC] 语法……我就不贴目录了。下面按照类别,列出了29道关于二叉树...
    被称为L的男人阅读 3,435评论 0 8
  • 二叉树基础知识:可查看http://www.cnblogs.com/polly333/p/4740355.html...
    雅芳阅读 456评论 0 0
  • 树形结构 在前面章节中介绍到的数据结构,都为线性结构,比如链表,数组,队列等,都属于线性结构,类似于通过一根线串在...
    ducktobey阅读 1,408评论 0 0

友情链接更多精彩内容