题意:给定一个树,返回从根到叶节点的所有路径
思路:先序遍历树,获取所有路径
思想:树的先跟遍历
复杂度:时间O(n2),空间O(n)
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
List<String> res = new ArrayList();
public List<String> binaryTreePaths(TreeNode root) {
get(new StringBuilder(), root);
return res;
}
void get(StringBuilder temp, TreeNode root) {
if(root == null) {
return;
}
if(root.left == null && root.right == null) {
temp.append(root.val);
res.add(temp.toString());
return;
}
temp.append(root.val).append("->");
int len = temp.length();
get(temp, root.left);
temp.setLength(len);
get(temp, root.right);
}
}
网友评论