给定一个二叉树,返回从根节点到叶节点的所有路径。
例如,给定以下二叉树:
   1
 /   \
2     3
 \
  5
所有根到叶路径是:
["1->2->5", "1->3"]

详见:https://leetcode.com/problems/binary-tree-paths/description/

Java实现:

/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public List<String> binaryTreePaths(TreeNode root) {
List<String> res=new ArrayList<String>();
if(root==null){
return res;
}
helper(root,"",res);
return res;
}
private void helper(TreeNode root,String out,List<String> res){
out+=String.valueOf(root.val);
if(root.left==null&&root.right==null){
res.add(out);
}
if(root.left!=null){
helper(root.left,out+"->",res);
}
if(root.right!=null){
helper(root.right,out+"->",res);
}
}
}

C++实现:

/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
vector<string> binaryTreePaths(TreeNode* root) {
vector<string> res;
if(root)
{
helper(root,"",res);
}
return res;
}
void helper(TreeNode *root,string out,vector<string> &res)
{
out+=to_string(root->val);
if(!root->left&&!root->right)
{
res.push_back(out);
}
if(root->left)
{
helper(root->left,out+"->",res);
}
if(root->right)
{
helper(root->right,out+"->",res);
}
}
};

参考:https://www.cnblogs.com/grandyang/p/4738031.html

最新文章

  1. 不错的 iOS 工具
  2. 我为什么选择使用Go语言?
  3. python学习小结3:函数
  4. Linux学习笔记18——信号1
  5. 在公网(internet)上建立website时不能用http访问
  6. 国内常用ntp服务器ip地址
  7. 将String类型的数字字符转换成int
  8. Ajax 生成流文件下载 以及复选框的实现
  9. Effective C++ Item 33 避免遮掩继承过来的名称
  10. ASCII,Unicode 和通用方式
  11. C#委托与事件学习笔记
  12. 02-css的选择器
  13. 51Nod 1069 Nim游戏 (位运算)
  14. Python Django 之 简单入门
  15. python中的三次握手以及四次挥手
  16. linux svn配置与使用
  17. Linux source命令
  18. jQuery ajax - serializeArray() 方法
  19. SQLSERVER 子查询中使用ORDER BY
  20. 【Linux】Shell三类变量的作用域——linux shell “永久环境变量”、“临时环境变量”和&quot;普通变量&quot;之完全解读

热门文章

  1. Codeforces 628F Bear and Fair Set
  2. POJ 3734_Blocks
  3. ArcGIS for Android离线数据编辑实现原理
  4. C#.NET如何将cs文件编译成dll文件 exe文件 如何调用dll文件
  5. C# .NET如何清空stringbuilder
  6. Java设计模式—单例设计模式(Singleton Pattern)全然解析
  7. netty4与protocol buffer结合简易教程
  8. php &amp;amp; 和 &amp;amp;amp; (主要是url 问题)
  9. PHP连接数据库(注冊页面的增删改查)
  10. Rust hello world 语法解说