public List<String> binaryTreePaths(TreeNode root) {
List<String> paths=new ArrayList<>();
if(root==null){
return paths;
}
List<Integer> values=new ArrayList<>();
backtrack(root,values,paths);
return paths;
}
//values 记录从根节点到叶子节点
//paths 记录路径
private void backtrack(TreeNode root, List<Integer> values,List<String> paths){
if(root==null){
return;
}
values.add(root.val);
if(root.left==null && root.right==null){ // 到达叶子节点
paths.add(buildPath(values));
}else{
backtrack(root.left,values,paths);
backtrack(root.right,values,paths);
}
values.remove(values.size()-1);
}
private String buildPath(List<Integer> values){
StringBuilder res=new StringBuilder();
for(int i=0;i<values.size();i++){
if(i==values.size()-1){
res.append(values.get(i));
}else{
res.append(values.get(i)).append("->");
}
}
return res.toString();
}
https://www.mianshi.online,https://www.i9code.cn
本文由博客一文多发平台 OpenWrite 发布!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。