/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public List<String> binaryTreePaths(TreeNode root) {
List<String> list = new ArrayList<>();
if(root == null){
return list;
}
StringBuilder sb = new StringBuilder();
rec(list,root,sb);
return list;
}
public void rec(List<String> list,TreeNode root,StringBuilder sb){
if(root.left == null&&root.right == null){ //如果root没有左右子节点了,直接在sb.append()
sb.append(root.val);
list.add(sb.toString());
return ;
}
// root至少有一个节点
sb.append(root.val);
sb.append("->");
int orilen = sb.length();// 记住最开始的root到当前的root的距离。
if(root.left!=null) rec(list,root.left,sb);
sb.setLength(orilen);
if(root.right!=null) rec(list,root.right,sb);
}
}
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public List<String> binaryTreePaths(TreeNode root) {
List<String> list = new ArrayList<>();
if(root == null){
return list;
}
StringBuilder sb = new StringBuilder();
rec(list,root,sb);
return list;
}
public void rec(List<String> list,TreeNode root,StringBuilder sb){
if(root.left == null&&root.right == null){ //如果root没有左右子节点了,直接在sb.append()
sb.append(root.val);
list.add(sb.toString());
return ;
}
// root至少有一个节点
sb.append(root.val);
sb.append("->");
int orilen = sb.length();// 记住最开始的root到当前的root的距离。
if(root.left!=null) rec(list,root.left,sb);
sb.setLength(orilen);
if(root.right!=null) rec(list,root.right,sb);
}
}