二叉树的所有路径(LeetCode 257)
力扣
思路 :
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)相关推荐
- 257. 二叉树的所有路径 golang
257. 二叉树的所有路径 给定一个二叉树,返回所有从根节点到叶子节点的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 输入: 1/ \ 2 3\5 输出: ["1->2-&g ...
- Suzy找到实习了吗Day 17 | 二叉树进行中:110. 平衡二叉树,257 二叉树的所有路径,404. 左叶子之和
110. 平衡二叉树 题目 判断一颗二叉树是否是平和二叉树:一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 . 我的错误trial 我通过写了一个函数(后序遍历 ...
- 递归处理二叉树总结(附leetcode题)
递归模板 递归出口 (1)if(root==NULL) ..return.. //当根节点为空时 (2) if(!root->left&& ...
- 算法训练营 day17 二叉树 平衡二叉树 二叉树的所以路径 左叶子之和
算法训练营 day17 二叉树 平衡二叉树 二叉树的所以路径 左叶子之和 平衡二叉树 110. 平衡二叉树 - 力扣(LeetCode) 给定一个二叉树,判断它是否是高度平衡的二叉树. 本题中,一棵高 ...
- mysql递归查询所有上下节点_非递归打印二叉树的所有路径,保存父节点和孩子节点到底有啥差别...
题目解读 题目要求输出二叉树的所有路径(字符串形式),乍一看很简单,不就是二叉树的遍历嘛!其实不然,首先,我们用非递归的方式(C++)解决这道题(递归在产品代码中是不允许使用的,其次定位 bug 的时 ...
- [二叉树|深搜|dfs] leetcode 404 左叶子之和
[二叉树|深搜|dfs] leetcode 404 左叶子之和 1.题目 题目链接 计算给定二叉树的所有左叶子之和. 示例: 3/ \9 20/ \15 7在这个二叉树中,有两个左叶子,分别是 9 和 ...
- 【leetcode-DFS】求根节点到叶节点数字之和/二叉树的最大路径和/路径总和/左叶子之和/树的直径
文章目录 求根节点到叶节点数字之和 深度优先搜索 广度优先搜索 二叉树的最大路径和 DFS 路径总和1 深度优先搜索 广度优先搜索 路径总和2 回溯法 广度优先搜索 左叶子之和 递归 DFS 树的直径 ...
- DS树--二叉树之最大路径
题目描述 给定一颗二叉树的逻辑结构(先序遍历的结果,空树用字符'0'表示,例如AB0C00D00),建立该二叉树的二叉链式存储结构 二叉树的每个结点都有一个权值,从根结点到每个叶子结点将形成一条路径, ...
- [Leetcode][第257题][JAVA][二叉树的所有路径][BFS][DFS]
[问题描述][简单] [解答思路] 1. DFS 时间复杂度:O(N^2) 空间复杂度:O(N^2) class Solution {public List<String> binaryT ...
- LeetCode 257. 二叉树的所有路径(DFS)
文章目录 1. 题目 2. DFS解题 1. 题目 给定一个二叉树,返回所有从根节点到叶子节点的路径. 说明: 叶子节点是指没有子节点的节点. 示例:输入:1/ \ 2 3\5输出: ["1 ...
最新文章
- 假如双十二,淘宝的Java工程师把JVM炸了……
- java布局垂直居中_CSS水平居中和垂直居中解决方案(转)
- docker开放的端口_docker-5-解决宿主机没有开放81端口却可以直接访问docker启动的81端口nginx容器的问题...
- C++ OpenCV 问题
- ASP.NET没有魔法——ASP.NET MVC使用Area开发一个管理模块
- 关于开学,我的心路历程~我已不想开学了
- CheckedListBoxControl 赋值,取值的方法 KKK笔记
- 求n的阶乘【VB代码实现】
- 支付宝APP支付 错误代码 insufficient-isv-permissions 错误原因: ISV权限不足
- 2016微信公开课·张小龙演讲全文(下)
- python与java前景分析-Java和Python哪个未来前景好?
- 第1周练习 货币转换 I
- python获取交互式ssh shell
- 计算半圆弧长及半圆的面积。(3分)
- 分布式IO模块ET 200SP基座单元( BaseUnit)使用方法
- ES与传统数据库,为什么用ES?
- Asus Eee Pc,看起来很不错
- Vue实现点击根据已知的链接下载文件
- js漂浮广告代码(简洁!)
- 2022年血糖仪行业现状
热门文章
- 计蒜客 - T1012 A*B问题
- 2019ICPC亚洲区域赛日程与2019CCPC比赛日程
- JSK-391 公约公倍【入门】
- HDU2520 我是菜鸟,我怕谁【水题】
- CCF201412试题
- 特例模式(Special Case Pattern)与空对象模式(Null Pointer Pattern)—— 返回特例对象而非 null
- 目标识别(object detection)中的 IoU(Intersection over Union)
- Matlab Tricks( 八)—— 将 pgm 格式文件转换为 png 格式
- 趣学 C 语言(十)—— 控制台交互(getch() vs. getchar())
- Java——一种彻底的面向对象语言