文章目录
所有题目源代码:[Git地址](https://github.com/ch98road/leetcode)题目方案:复杂度计算
所有题目源代码:Git地址
题目
给定一个二叉树,返回所有从根节点到叶子节点的路径。
说明
: 叶子节点是指没有子节点的节点。
示例
:
输入
:
1
/ \
2 3
\
5
输出
: ["1->2->5", "1->3"]
解释
: 所有根节点到叶子节点的路径为
: 1->2->5, 1->3
方案:
class Solution {
public:
vector
<string> res
;
vector
<string> binaryTreePaths(TreeNode
* root
) {
if(root
==NULL
) return res
;
paths(root
,"");
return res
;
}
void paths(TreeNode
* root
,string path
){
string dat
;
if(path
!="")
dat
= path
+"->"+to_string(root
->val
);
else
dat
= to_string(root
->val
);
if (root
->left
!=NULL
)
{
paths(root
->left
,dat
);
}
if (root
->right
!=NULL
)
{
paths(root
->right
,dat
);
}
if(root
->right
==NULL
&&root
->left
==NULL
){
res
.push_back(dat
);
}
}
};
复杂度计算
时间复杂度:O(n)空间复杂度:O(n)