257. Binary Tree Paths
来源:互联网 发布:虚拟软件是什么 编辑:程序博客网 时间:2024/06/14 00:48
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"]
使用DFS,因为需要使用到递归,必须要指定递归出口,对于这个情况,递归出口就是叶子节点。
先贴出我自己写的low代码。。。
class Solution {public: vector<string> binaryTreePaths(TreeNode* root) { vector<string> result; if (root == NULL) return result; string out = ""; DFS(root, result, out); return result; } void DFS(TreeNode* root, vector<string>& result, string& out) { if (root->left == NULL && root->right == NULL) { out += to_string(root->val); cout << out; result.push_back(out); return; } else { if (root->left != NULL) { string oldStr = out; out += to_string(root->val) + "->"; DFS(root->left, result, out); out = oldStr; } if (root->right != NULL) { string oldStr = out; out += to_string(root->val) + "->"; DFS(root->right, result, out); out = oldStr; } } }}这个题发现了一个情况,就是如果在DFS中使用string& out,调用DFS的时候不能传入“”(空字符串),必须定义初始化。
然后在再传Grandyang的代码:
class Solution {public: vector<string> binaryTreePaths(TreeNode* root) { vector<string> result; if (root == NULL) return result; string out = ""; DFS(root, result, ""); return result; } void DFS(TreeNode* root, vector<string>& result, string out) { out += to_string(root->val); if (root->left == NULL && root->right == NULL) { result.push_back(out); } else { if (root->left != NULL) DFS2(root->left, result, out + "->"); if (root->right != NULL) DFS2(root->right, result, out + "->"); } } };简洁的一逼啊。。。。还是要继续努力。。共勉!
阅读全文
0 0
- 257. Binary Tree Paths
- 257. Binary Tree Paths
- 257. Binary Tree Paths
- 257. Binary Tree Paths
- 257. Binary Tree Paths
- 257. Binary Tree Paths
- 257. Binary Tree Paths
- 257. Binary Tree Paths
- 257. Binary Tree Paths
- 257. Binary Tree Paths
- 257. Binary Tree Paths
- 257. Binary Tree Paths
- 257. Binary Tree Paths
- 257. Binary Tree Paths
- 257. Binary Tree Paths
- 257. Binary Tree Paths
- 257. Binary Tree Paths
- 257. Binary Tree Paths
- 原生js实现AJAX(三)
- Emoogle Grid (方案数,逆元求解,对数求解)
- STM32的PWM相关函数TIM_SetCompare1的一定理解
- 绿盟杯NSCTF(CCTF)2017 pwn writeup
- bzoj P1042 [HAOI2008]硬币购物
- 257. Binary Tree Paths
- Java 接口 多态概念 知识
- java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener错误解决方案
- jQuery对象实现的原理
- N皇后问题初探
- 怎么写博客?
- Mongodb解决不能连接到服务器的错误
- 快速输入函数(比scanf快)
- bzoj P2560 串珠子