力扣

思路 :

1.递归

递归函数声明:  

vector<string> binaryTreePaths(TreeNode* root) ;

递归出口:

(1)如果根节点为空,返回 “  ”

(2)  如果根节点不为空且根节点的左右节点都为空,返回“root->val”

递归体:

如果根节点不为空且根节点的左右节点不全为空,递归求出左子树的路径和右子树的路径,

在左子树和右子树所有路径前加上“(root->val)->”

c++中string操作:

vector<string>s,s为存放字符串的动态数组

s=s1+s2为字符串的拼接

to_string(n) 把整数n转换成字符串

代码:

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:vector<string> binaryTreePaths(TreeNode* root) {
vector<string>res;
if(root==NULL)
{return res;
}
if(!root->left&&!root->right)
{string str;str+=to_string(root->val);res.push_back(str);return res;
}
string s;
s+=to_string(root->val)+"->";//把s加到l,r的每一个字符数组中
vector<string>l;
vector<string>r;
l=binaryTreePaths(root->left);//l为以左子树为根节点的路径结果
r=binaryTreePaths(root->right);//r为以右子树为根节点的路径结果for(int i=0;i<l.size();i++)
{res.push_back(s+l[i]);
}
for(int i=0;i<r.size();i++)
{res.push_back(s+r[i]);
}
return res;}
};

二叉树的所有路径(LeetCode 257)相关推荐

  1. 257. 二叉树的所有路径 golang

    257. 二叉树的所有路径 给定一个二叉树,返回所有从根节点到叶子节点的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 输入: 1/ \ 2 3\5 输出: ["1->2-&g ...

  2. Suzy找到实习了吗Day 17 | 二叉树进行中:110. 平衡二叉树,257 二叉树的所有路径,404. 左叶子之和

    110. 平衡二叉树 题目 判断一颗二叉树是否是平和二叉树:一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 . 我的错误trial 我通过写了一个函数(后序遍历 ...

  3. 递归处理二叉树总结(附leetcode题)

    递归模板 递归出口 (1)if(root==NULL)    ..return..                  //当根节点为空时 (2) if(!root->left&& ...

  4. 算法训练营 day17 二叉树 平衡二叉树 二叉树的所以路径 左叶子之和

    算法训练营 day17 二叉树 平衡二叉树 二叉树的所以路径 左叶子之和 平衡二叉树 110. 平衡二叉树 - 力扣(LeetCode) 给定一个二叉树,判断它是否是高度平衡的二叉树. 本题中,一棵高 ...

  5. mysql递归查询所有上下节点_非递归打印二叉树的所有路径,保存父节点和孩子节点到底有啥差别...

    题目解读 题目要求输出二叉树的所有路径(字符串形式),乍一看很简单,不就是二叉树的遍历嘛!其实不然,首先,我们用非递归的方式(C++)解决这道题(递归在产品代码中是不允许使用的,其次定位 bug 的时 ...

  6. [二叉树|深搜|dfs] leetcode 404 左叶子之和

    [二叉树|深搜|dfs] leetcode 404 左叶子之和 1.题目 题目链接 计算给定二叉树的所有左叶子之和. 示例: 3/ \9 20/ \15 7在这个二叉树中,有两个左叶子,分别是 9 和 ...

  7. 【leetcode-DFS】求根节点到叶节点数字之和/二叉树的最大路径和/路径总和/左叶子之和/树的直径

    文章目录 求根节点到叶节点数字之和 深度优先搜索 广度优先搜索 二叉树的最大路径和 DFS 路径总和1 深度优先搜索 广度优先搜索 路径总和2 回溯法 广度优先搜索 左叶子之和 递归 DFS 树的直径 ...

  8. DS树--二叉树之最大路径

    题目描述 给定一颗二叉树的逻辑结构(先序遍历的结果,空树用字符'0'表示,例如AB0C00D00),建立该二叉树的二叉链式存储结构 二叉树的每个结点都有一个权值,从根结点到每个叶子结点将形成一条路径, ...

  9. [Leetcode][第257题][JAVA][二叉树的所有路径][BFS][DFS]

    [问题描述][简单] [解答思路] 1. DFS 时间复杂度:O(N^2) 空间复杂度:O(N^2) class Solution {public List<String> binaryT ...

  10. LeetCode 257. 二叉树的所有路径(DFS)

    文章目录 1. 题目 2. DFS解题 1. 题目 给定一个二叉树,返回所有从根节点到叶子节点的路径. 说明: 叶子节点是指没有子节点的节点. 示例:输入:1/ \ 2 3\5输出: ["1 ...

最新文章

  1. 假如双十二,淘宝的Java工程师把JVM炸了……
  2. java布局垂直居中_CSS水平居中和垂直居中解决方案(转)
  3. docker开放的端口_docker-5-解决宿主机没有开放81端口却可以直接访问docker启动的81端口nginx容器的问题...
  4. C++ OpenCV 问题
  5. ASP.NET没有魔法——ASP.NET MVC使用Area开发一个管理模块
  6. 关于开学,我的心路历程~我已不想开学了
  7. CheckedListBoxControl 赋值,取值的方法 KKK笔记
  8. 求n的阶乘【VB代码实现】
  9. 支付宝APP支付 错误代码 insufficient-isv-permissions 错误原因: ISV权限不足
  10. 2016微信公开课·张小龙演讲全文(下)
  11. python与java前景分析-Java和Python哪个未来前景好?
  12. 第1周练习 货币转换 I
  13. python获取交互式ssh shell
  14. 计算半圆弧长及半圆的面积。(3分)
  15. 分布式IO模块ET 200SP基座单元( BaseUnit)使用方法
  16. ES与传统数据库,为什么用ES?
  17. Asus Eee Pc,看起来很不错
  18. Vue实现点击根据已知的链接下载文件
  19. js漂浮广告代码(简洁!)
  20. 2022年血糖仪行业现状

热门文章

  1. 计蒜客 - T1012 A*B问题
  2. 2019ICPC亚洲区域赛日程与2019CCPC比赛日程
  3. JSK-391 公约公倍【入门】
  4. HDU2520 我是菜鸟,我怕谁【水题】
  5. CCF201412试题
  6. 特例模式(Special Case Pattern)与空对象模式(Null Pointer Pattern)—— 返回特例对象而非 null
  7. 目标识别(object detection)中的 IoU(Intersection over Union)
  8. Matlab Tricks( 八)—— 将 pgm 格式文件转换为 png 格式
  9. 趣学 C 语言(十)—— 控制台交互(getch() vs. getchar())
  10. Java——一种彻底的面向对象语言