171.二叉树:二叉树的所有路径(力扣)

2024-06-09 01:28

本文主要是介绍171.二叉树:二叉树的所有路径(力扣),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

代码解决

/*** 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 {// 辅助递归函数,生成从根节点到叶节点的路径void traversal(TreeNode* root, string path, vector<string>& result) {// 将当前节点的值添加到路径中path += to_string(root->val);// 如果当前节点是叶节点,添加路径到结果中if (root->left == nullptr && root->right == nullptr) {result.push_back(path);return;}// 处理左子树if (root->left) {path += "->";  // 添加箭头到路径traversal(root->left, path, result);path.pop_back();  // 移除箭头的最后一个字符 '-'path.pop_back();  // 移除箭头的最后一个字符 '>'}// 处理右子树if (root->right) {path += "->";  // 添加箭头到路径traversal(root->right, path, result);path.pop_back();  // 移除箭头的最后一个字符 '-'path.pop_back();  // 移除箭头的最后一个字符 '>'}}public:// 主函数,生成二叉树所有从根节点到叶节点的路径vector<string> binaryTreePaths(TreeNode* root) {vector<string> result;  // 保存所有路径的结果string path;  // 保存当前路径if (root == nullptr) return result;  // 如果树为空,返回空结果traversal(root, path, result);  // 调用辅助递归函数return result;  // 返回所有路径}
};
  • TreeNode 结构体定义

    • val:节点的整数值。
    • left:指向左子节点的指针。
    • right:指向右子节点的指针。
  • Solution 类

    • 包含一个辅助递归函数 traversal 和一个主函数 binaryTreePaths
  • traversal 方法

    • 递归生成从根节点到叶节点的路径。
    • 将当前节点的值添加到路径中。
    • 如果当前节点是叶节点,将路径添加到结果集中。
    • 递归处理左子树和右子树,分别添加箭头到路径中,并在递归结束后移除箭头。
  • binaryTreePaths 方法

    • 主函数,调用辅助递归函数生成所有路径。
    • 如果树为空,返回空的结果集。
    • 返回包含所有路径的结果集。

这篇关于171.二叉树:二叉树的所有路径(力扣)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1043867

相关文章

Python打印对象所有属性和值的方法小结

《Python打印对象所有属性和值的方法小结》在Python开发过程中,调试代码时经常需要查看对象的当前状态,也就是对象的所有属性和对应的值,然而,Python并没有像PHP的print_r那样直接提... 目录python中打印对象所有属性和值的方法实现步骤1. 使用vars()和pprint()2. 使

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

VSCode设置python SDK路径的实现步骤

《VSCode设置pythonSDK路径的实现步骤》本文主要介绍了VSCode设置pythonSDK路径的实现步骤,包括命令面板切换、settings.json配置、环境变量及虚拟环境处理,具有一定... 目录一、通过命令面板快速切换(推荐方法)二、通过 settings.json 配置(项目级/全局)三、

使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)

《使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)》字体设计和矢量图形处理是编程中一个有趣且实用的领域,通过Python的matplotlib库,我们可以轻松将字体轮廓... 目录背景知识字体轮廓的表示实现步骤1. 安装依赖库2. 准备数据3. 解析路径指令4. 绘制图形关键

如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)

《如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)》:本文主要介绍如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)问题,具有很好的参考价值,希望对大家有所帮助,如有... 目录先在你打算存放的地方建四个文件夹更改这四个路径就可以修改默认虚拟内存分页js文件的位置接下来从高级-

一文详解如何查看本地MySQL的安装路径

《一文详解如何查看本地MySQL的安装路径》本地安装MySQL对于初学者或者开发人员来说是一项基础技能,但在安装过程中可能会遇到各种问题,:本文主要介绍如何查看本地MySQL安装路径的相关资料,需... 目录1. 如何查看本地mysql的安装路径1.1. 方法1:通过查询本地服务1.2. 方法2:通过MyS

Python如何调用指定路径的模块

《Python如何调用指定路径的模块》要在Python中调用指定路径的模块,可以使用sys.path.append,importlib.util.spec_from_file_location和exe... 目录一、sys.path.append() 方法1. 方法简介2. 使用示例3. 注意事项二、imp

使用Python实现矢量路径的压缩、解压与可视化

《使用Python实现矢量路径的压缩、解压与可视化》在图形设计和Web开发中,矢量路径数据的高效存储与传输至关重要,本文将通过一个Python示例,展示如何将复杂的矢量路径命令序列压缩为JSON格式,... 目录引言核心功能概述1. 路径命令解析2. 路径数据压缩3. 路径数据解压4. 可视化代码实现详解1

MySQL中动态生成SQL语句去掉所有字段的空格的操作方法

《MySQL中动态生成SQL语句去掉所有字段的空格的操作方法》在数据库管理过程中,我们常常会遇到需要对表中字段进行清洗和整理的情况,本文将详细介绍如何在MySQL中动态生成SQL语句来去掉所有字段的空... 目录在mysql中动态生成SQL语句去掉所有字段的空格准备工作原理分析动态生成SQL语句在MySQL