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

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

示例:

输入:

   1
/ \
2 3
\
5

输出: ["1->2->5", "1->3"]

解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3

class Solution {
public:
vector<string> binaryTreePaths(TreeNode* root) {
if(root == NULL)//二叉树为空
return vec;
DFS(root, to_string(root->val));
return vec;
} void DFS(TreeNode* root, string str) {
if (root->right == NULL && root->left == NULL) {//搜索完一个叶子节点,将数据存入容器
vec.push_back(str);
return;
}
if(root->left != NULL)//防止越界取值
DFS(root->left, str + "->" + to_string(root->left->val));//先将左子叶遍历,使用str存储递归中经过的值
if(root->right != NULL)
DFS(root->right, str + "->" + to_string(root->right->val));
}
private:
vector<string> vec;
};

  

转载:这个会更好理解

/*这个应该挺容易理解*/
class Solution {
private:
vector<string> ans;// 最终的解答
public:
vector<string> binaryTreePaths(TreeNode* root) {
binaryTreePaths(root, "", true);// 递归求解
return ans;
}
private:
void binaryTreePaths(TreeNode* root, string s, bool isRoot) {
if (!root) return;
s += (isRoot ? "" : "->") + to_string(root->val);//根节点需要特殊处理
if (!root->left && !root->right) {// 如果找到一个叶子节点
ans.push_back(s);
return;
}
binaryTreePaths(root->left, s, false);
binaryTreePaths(root->right, s, false);
}
};

最新文章

  1. WebView的使用
  2. Web 使用PostMan提交特殊格式数据
  3. PLSQL开发笔记和小结(转载)
  4. android判断当前应用程序处于前台还是后台
  5. javascript社交平台分享-新浪微博、QQ微博、QQ好友、QQ空间、人人网
  6. 关于Connection must be valid and open.
  7. kbengine环境搭建(2)
  8. UVALive 6948 Jokewithpermutation 深搜
  9. SerializableObj
  10. BZOJ 1485: [HNOI2009]有趣的数列 [Catalan数 质因子分解]
  11. VMWare 学习目录
  12. qml: 截图(单窗口);
  13. 2017-2018-2 20165325 实验一《Java开发环境的熟悉》实验报告
  14. 使用ycsb对hbase1.4.9 benchmark
  15. Jedis简介
  16. Java笔试面试题整理第二波
  17. GC频繁抖动的主要原因
  18. Git-忽略规则.gitignore生效
  19. Laravel - 从百草园到三味书屋 &quot;From Apprentice To Artisan&quot;目录
  20. Alpha阶段中间产物——GUI Prototype、WBS及PSP

热门文章

  1. Listview 利用Datapager进行分页
  2. Replication--复制问答
  3. wp面试题
  4. C#构造函数详解和析构函数详解
  5. Struts2学习第一天--Struts2的概述、Struts2的入门、Struts2常见的配置、Struts2的Action的编写
  6. Mysql初识数据库《二》数据库管理软件的由来
  7. wx-xcx
  8. bzoj1070【SCOI2007】修车(费用流)
  9. 数组常用的API——splice()截取
  10. CentOS71611安装Python3.5.3