首页 技术 正文
技术 2022年11月19日
0 收藏 355 点赞 4,561 浏览 935 个字

480-二叉树的所有路径

给一棵二叉树,找出从根节点到叶子节点的所有路径。

您在真实的面试中是否遇到过这个题? Yes

样例

给出下面这棵二叉树:

所有根到叶子的路径为:

[

"1->2->5",

"1->3"

]

标签

二叉树 谷歌 二叉树遍历 脸书

思路

使用深度优先搜索 + 回溯

code

/**
* Definition of TreeNode:
* class TreeNode {
* public:
* int val;
* TreeNode *left, *right;
* TreeNode(int val) {
* this->val = val;
* this->left = this->right = NULL;
* }
* }
*/
class Solution {
public:
/**
* @param root the root of the binary tree
* @return all root-to-leaf paths
*/
vector<string> binaryTreePaths(TreeNode* root) {
// Write your code here
if (root == NULL) {
return vector<string>();
}
vector<string> result;
vector<int> path;
DFS(root, path, result);
return result;
} void DFS(TreeNode * root, vector<int> &path, vector<string> &result) {
path.push_back(root->val);
if (root->left == NULL && root->right == NULL) {
string temp;
for (int p : path) {
char pa[256];
sprintf(pa, "%d", p);
temp += pa;
temp += "->";
}
result.push_back(temp.substr(0, temp.size()-2));
return;
}
if (root->left != NULL) {
DFS(root->left, path, result);
path.pop_back();
}
if (root->right != NULL) {
DFS(root->right, path, result);
path.pop_back();
}
}
};
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,085
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,560
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,409
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,182
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,819
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,902