lintcode二叉树的所有路径
来源:互联网 发布:第二次世界大战知乎 编辑:程序博客网 时间:2024/06/06 08:43
1.描述:
给一棵二叉树,找出从根节点到叶子节点的所有路径。
给出下面这棵二叉树:
1 / \2 3 \ 5
所有根到叶子的路径为:
[ "1->2->5", "1->3"]
2.思路:
写一个主函数调用递归支函数,在支函数中有三个形参,节点root、局部字符型向量str、字符strpath,若当前节点左右孩子都不存在,将字符添加到字符向量中,跳出递归;若左孩子存在,递归调用函数,参数变为root->left,str,strPaths+"->"+to_string(root->left->val) ,若右孩子存在,同理。
3.代码:
vector<string> binaryTreePaths(TreeNode* root) {
vector<string>Paths;
if(root==NULL) return Paths;
def(root,Paths,to_string(root->val) );
return Paths;
}
void def(TreeNode *root,vector<string>&str,string strPaths){
if(root->left==NULL&&root->right==NULL){
str.push_back(strPaths);
return;
}
if(root->left!=NULL)
def(root->left,str,strPaths+"->"+to_string(root->left->val) );
if(root->right!=NULL)
def(root->right,str,strPaths+"->"+to_string(root->right->val) );
}
4.感想:
这题是看别人的,这个递归每次调用时第三个字符参数都会累加,还有局部变量str的运用,在递归函数中替代strPaths,真的非常巧妙
- LintCode- 二叉树的所有路径
- lintcode----二叉树的所有路径
- lintcode,二叉树的所有路径
- lintcode二叉树的所有路径
- LintCode | 480. 二叉树的所有路径
- LintCode 二叉树的所有路径
- 二叉树的所有路径-LintCode
- LintCode-二叉树的所有路径
- lintcode二叉树的所有路径
- lintcode 二叉树的所有路径
- LintCode 二叉树的所有路径
- lintcode--二叉树的所有路径
- [LintCode]480.二叉树的所有路径
- 二叉树的所有路径-LintCode
- LintCode 480-二叉树的所有路径
- lintcode(480)——二叉树的所有路径
- lintcode binary-tree-paths 二叉树的所有路径
- lintcode——二叉树的所有路径
- MySQL数据库(8)
- Centos7 使用GDB调试时的问题:Missing separate debuginfos, use: debuginfo-install libgccxxx
- 学习淘淘商城第三十一课(Redis集群搭建)
- decltype
- Junil
- lintcode二叉树的所有路径
- 免费公开课:机器学习算法之水煮SVM
- 修改环境变量导致命令出错
- 【转载】Java内存分析工具--IDEA的JProfiler和JMeter插件
- Guava库学习:学习Guava EventBus(一)EventBus
- 集合
- POJ 3126 Prime Path(经典广搜BFS)
- Ubantu下实现Linux驱动程序开发环境(内核树)
- python3+PyQt5 树中表达表格数据