257. 二叉树的所有路径
问题
例子
代码
//回溯
class Solution {
public List<String> binaryTreePaths(TreeNode root) {
List<String> list = new ArrayList<>();
preOrder(root,list,new StringBuilder());
return list;
}
//为null是才return
public void preOrder(TreeNode root, List<String> list, StringBuilder sb)
{
if(root==null) return;
int len = sb.length();
if(sb.length()!=0) {
sb.append("->");
}
sb.append(root.val);
if(root.left==null && root.right==null) {
//如果为叶节点
list.add(sb.toString());
//找到添加的东西时,可以直接return,进行剪枝,但是要先将sb进行回溯
//sb.delete(len,sb.length());
//return;
}else{
if(root.left!=null) preOrder(root.left,list,sb);
if(root.right!=null) preOrder(root.