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一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

SpringBoot路径映射配置的实现步骤

《SpringBoot路径映射配置的实现步骤》本文介绍了如何在SpringBoot项目中配置路径映射,使得除static目录外的资源可被访问,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一... 目录SpringBoot路径映射补:springboot 配置虚拟路径映射 @RequestMapp

python设置环境变量路径实现过程

《python设置环境变量路径实现过程》本文介绍设置Python路径的多种方法:临时设置(Windows用`set`,Linux/macOS用`export`)、永久设置(系统属性或shell配置文件... 目录设置python路径的方法临时设置环境变量(适用于当前会话)永久设置环境变量(Windows系统

Spring Boot中的路径变量示例详解

《SpringBoot中的路径变量示例详解》SpringBoot中PathVariable通过@PathVariable注解实现URL参数与方法参数绑定,支持多参数接收、类型转换、可选参数、默认值及... 目录一. 基本用法与参数映射1.路径定义2.参数绑定&nhttp://www.chinasem.cnbs

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. 绘制图形关键