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

【代码随想录day 15】 力扣 257. 二叉树的所有路径

视频讲解:https://www.bilibili.com/video/BV1ZG411G7Dh/?vd_source=a935eaede74a204ec74fd041b917810c
文档讲解:https://programmercarl.com/0257.%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E6%89%80%E6%9C%89%E8%B7%AF%E5%BE%84.html#%E7%AE%97%E6%B3%95%E5%85%AC%E5%BC%80%E8%AF%BE
力扣题目:https://leetcode.cn/problems/binary-tree-paths/description/

这道题实质上就是一道遍历节点题,但需要记下二叉树的所有路径,涉及到这几个问题:

  1. 遍历节点记录的是int型,返回的路径是string类型的,因此涉及到类型转换的问题,使用C++的to_string函数来完成转换。
  2. 加入"->"符号涉及到最后一条路径没有,因此要分好情况。
  3. 回溯问题,关于路径遍历需要回溯到父节点的另一条子树路径,因此遍历完之和需要进行pop操作来回溯节点。
  4. 对于最后一个节点的遍历,需要先进行路径记录,再终止遍历。
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){//将int类型转换为string类型,并且加上->符号string sPath;for(int i=0; i< path.size()-1;i++){//int转为stringsPath=sPath+ to_string(path[i]);//加入->sPath=sPath+"->";}//最后一个路径不需要加->,所以单独讨论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;//执行遍历路径函数,输入根节点,路径,返回结果traversal(root,path,result);//最后返回resultreturn result;}
};
http://www.xdnf.cn/news/1273105.html

相关文章:

  • uni-app 网络请求终极选型:uni.request、axios、uni-network、alova 谁才是你的真命请求库?
  • LeetCode_字符串
  • LeetCode 刷题【37. 解数独】
  • 计算XGBoost分类模型的错误率
  • 网工笔记——BGP协议
  • 解决 Linux 下 “E: 仓库xxx没有数字签名” 问题
  • 编程基础之多维数组——同行列对角线的格
  • scanpy单细胞转录组python教程(四):单样本数据分析之降维聚类及细胞注释
  • (Python)爬虫进阶(Python爬虫教程)(CSS选择器)
  • stm32没有CMSIS文件
  • 【精彩回顾·成都】成都 User Group×柴火创客空间:开源硬件驱动 AI 与云的创新实践!
  • vue和react和uniapp的状态管理分别是什么,并且介绍和怎么使用
  • Day38--动态规划--322. 零钱兑换,279. 完全平方数,139. 单词拆分,56. 携带矿石资源(卡码网),背包问题总结
  • 如何理解SA_RESTART”被信号中断的系统调用自动重启“?
  • Vue3 组件化开发
  • 人工智能技术发展历史演变
  • Filter,Interceptor拦截器-登录校验
  • 关于城市农村创业的一点构想
  • RecyclerView 缓存机制
  • 堆----3.数据流的中位数
  • Slab 算法浅析
  • HTML全景效果实现
  • 【Python 语法糖小火锅 · 第 2 涮】
  • 容器技术基础与实践:从镜像管理到自动运行配置全攻略
  • 【数据分享】各省农业土地流转率(2010-2023)
  • 【Python 语法糖小火锅 · 第 4 涮】
  • 【Python 语法糖小火锅 · 第 3 涮】
  • 【unitrix数间混合计算】2.9 小数部分特征(t_non_zero_bin_frac.rs)
  • 【Canvas与旗帜】圆角蓝底大黄白星十一红白带旗
  • UE破碎Chaos分配模型内部面材质