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

news/2024/10/18 5:48:24/

代码解决

/*** 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 方法

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

http://www.ppmy.cn/news/1469497.html

相关文章

php实现一个简单的MySQL分页

一、案例演示&#xff1a; 二、php 代码 <?php $servername "localhost"; // MySQL服务器名称或IP地址 $username "root"; // MySQL用户名 $password "123456"; // MySQL密码 $dbname "test"; // 要连接…

Web前端不挂科:深入探索与实战指南

Web前端不挂科&#xff1a;深入探索与实战指南 在数字化时代的浪潮中&#xff0c;Web前端开发已成为一项炙手可热的技能。然而&#xff0c;对于许多初学者来说&#xff0c;如何避免在Web前端课程中挂科却成为了一道难题。本文将从四个方面、五个方面、六个方面和七个方面&…

登录/注册- 滑动拼图验证码(IOS/Swift)

本章介绍如何使用ios开发出滑动拼图验证码&#xff0c;分别OC代码和swift代码调用 1.导入项目model文件OC代码&#xff08;下载完整Demo&#xff09; 2.放入你需要显示的图片 一&#xff1a;OC调用 #import "ViewController.h" #import "CodeView.h"…

MySQL 日志(二)

本篇将继续介绍MySQL日志的相关内容 目录 一、二进制日志 简介 注意事项 删除二进制日志 查看二进制日志 二进制日志的格式 二、服务器日志维护 一、二进制日志 简介 二进制日志中主要记录了MySQL的更改事件&#xff08;不包含SELECT和SHOW),例如&#xff1a;表的…

模型 WOOP

说明&#xff1a;系列文章 分享 模型&#xff0c;了解更多&#x1f449; 模型_思维模型目录。不再拖延和懒惰&#xff0c;让梦想照进现实。 1 WOOP模型的应用 1.1 WOOP模型提高自己健身习惯 如果你想要养成健身的习惯&#xff0c;那么使用WOOP模型来提高自己健身习惯&#xf…

1.xshell传不了文件输出0000如何解决.....2.k8s中metalLB文件内容

xshell传不了文件输出0000如何解决 centos版本 1,因为没有工具下载即可 yum -y install lrzszk8s中metalLB文件内容 2.metalLB文件内容 cat metallb-native.yaml apiVersion: v1 kind: Namespace metadata:labels:pod-security.kubernetes.io/audit: privilegedpod-securit…

PROSAIL模型前向模拟与植被参数遥感

原文链接&#xff1a;PROSAIL模型前向模拟与植被参数遥感 “绿水青山就是金山银山”的生态文明理念现已深入人心&#xff0c;从顶层设计到全面部署&#xff0c;生态文明建设进入举措最实、推进最快、力度最大、成效最好的时期。生态文明评价必须将生态系统健康作为基本内容&am…

方法分享 |公网IP怎么指定非433端口实现https访问

公网IP可以通过指定非443端口实现HTTPS访问。在网络配置中&#xff0c;虽然HTTPS协议默认使用443端口&#xff0c;但没有规定不能在其他端口上实施HTTPS服务。使用非标准端口进行HTTPS通信需要正确配置服务器和SSL证书&#xff0c;并确保客户端能够连接到指定的端口。下面说明如…