当前位置: 首页 > news >正文

LeetCode257 二叉树的所有路径

前言

题目: 257. 二叉树的所有路径
文档: 代码随想录——二叉树的所有路径
编程语言: C++
解题状态: 没思路,简单题强度好高…

思路

本题利用了递归加回溯的思路。

这道题目要求从根节点到叶子的路径,所以需要前序遍历,这样才方便让父节点指向孩子节点,找到对应的路径。

因为我们要把路径记录下来,需要回溯来回退一个路径再进入另一个路径。

递归+回溯

递归回溯是一家!

代码

/*** 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:void traversal(TreeNode* cur, vector<int>& path, vector<string>& result) {path.push_back(cur -> val);if (cur -> left == NULL && cur -> right == NULL) {string sPath;for (int i = 0; i < path.size() - 1; i++) {sPath += to_string(path[i]);sPath += "->";}sPath += to_string(path[path.size() - 1]);result.push_back(sPath);return;}if (cur -> left) {traversal(cur -> left, path, result);path.pop_back();}if (cur -> right) {traversal(cur -> right, path, result);path.pop_back();}}vector<string> binaryTreePaths(TreeNode* root) {vector<string> result;vector<int> path;if (root == NULL) return result;traversal(root, path, result);return result;}
};

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 高可用集群KEEPALIVED
  • opencv色彩空间类型转换
  • LLM微调(精讲)-以高考选择题生成模型为例(DataWhale AI夏令营)
  • 前端创作纪念日
  • go语言协程之间的同步
  • 第十章、 异常Exception
  • 东土科技车规级网络芯片获批量应用
  • leetcode300. 最长递增子序列,动态规划附状态转移方程
  • Android 让程序随系统自动启动并允许后台运行(白名单)
  • arch linux 安装Budgie桌面
  • MySQL约束
  • 一、软件工程概述
  • 网络协议十 应用层 SPDY / HTTP2 / QUIC / HTTP3
  • 使用mybatis注解和xml映射执行javaWeb中增删改查等操作
  • Day18 Linux系统编程学习--文件
  • Android交互
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • nginx 配置多 域名 + 多 https
  • Spring Cloud中负载均衡器概览
  • sublime配置文件
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 基于遗传算法的优化问题求解
  • 简单实现一个textarea自适应高度
  • 简析gRPC client 连接管理
  • 离散点最小(凸)包围边界查找
  • 前端面试总结(at, md)
  • 前端之React实战:创建跨平台的项目架构
  • 线上 python http server profile 实践
  • 一道闭包题引发的思考
  • 正则学习笔记
  • python最赚钱的4个方向,你最心动的是哪个?
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • ​​​​​​​​​​​​​​Γ函数
  • ​ArcGIS Pro 如何批量删除字段
  • #define用法
  • #WEB前端(HTML属性)
  • $refs 、$nextTic、动态组件、name的使用
  • (2)Java 简介
  • (七)理解angular中的module和injector,即依赖注入
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (四)c52学习之旅-流水LED灯
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .Net Web窗口页属性
  • .net 发送邮件
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .NET/C# 使窗口永不获得焦点
  • .skip() 和 .only() 的使用
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)
  • @EnableConfigurationProperties注解使用
  • @html.ActionLink的几种参数格式
  • @require_PUTNameError: name ‘require_PUT‘ is not defined 解决方法