博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Binary Tree Paths
阅读量:5898 次
发布时间:2019-06-19

本文共 1289 字,大约阅读时间需要 4 分钟。

题目描述:

Given a binary tree, return all root-to-leaf paths.

For example, given the following binary tree:

1 /   \2     3 \  5

All root-to-leaf paths are:

["1->2->5", "1->3"]

看到树相关的题目,第一反应就是递归,下面是我的代码:

vector
binaryTreePaths(TreeNode* root) { vector
res; if (root != NULL) { char buf[20]; sprintf(buf, "%d", root->val); string rootPath = buf; if (root->left == NULL && root->right == NULL) { res.push_back(rootPath); } else { if (root->left) { vector
leftPath; leftPath = binaryTreePaths(root->left); for (vector
::iterator it = leftPath.begin(); it != leftPath.end(); ++it) { res.push_back(rootPath + "->" + *it); } } if (root->right) { vector
rightPath; rightPath = binaryTreePaths(root->right); for (vector
::iterator it = rightPath.begin(); it != rightPath.end(); ++it) { res.push_back(rootPath + "->" + *it); } } } } return res;}

想要简洁一点的,可以参考

转载于:https://www.cnblogs.com/gattaca/p/4750869.html

你可能感兴趣的文章
[算法]基于分区最近点算法的二维平面
查看>>
webpack多页应用架构系列(七):开发环境、生产环境傻傻分不清楚?
查看>>
笨办法学C 练习1:启用编译器
查看>>
树的总结--树的性质(树的深度) leetcode
查看>>
nagios短信报警(飞信fetion20080522004-linrh4)
查看>>
【Android游戏开发之六】在SurfaceView中添加组件!!!!并且相互交互数据!!!!...
查看>>
linux 将大文件分成小文件
查看>>
CCNA- 距离矢量路由协议学习
查看>>
企业实践用户邮箱导入/导出(第2部分)
查看>>
我的友情链接
查看>>
如何学习Linux命令-初级篇
查看>>
从Oracle Public Yum为Oracle Linux建立本地的Yum源
查看>>
在 SELECT 查询中使用表表达式
查看>>
静态路由和默认路由
查看>>
谈一谈Spring-Mybatis在多数据源配置上的坑
查看>>
【精益生产】车间现场管理的八大浪费
查看>>
关于阿里开发者招聘节 |这5道笔试真题 你会吗!???
查看>>
C#的异常处理机制
查看>>
vsftp:500 OOPS: could not bind listening IPv4 sock
查看>>
Linux安装BTCPayServer并设置比特币BTC和Lightning支付网关
查看>>