文章目录
题目思路代码
题目
257. 二叉树的所有路径
思路
不多说了,回溯先套模板,然后改动一下。
回溯真的牛逼,笔试中常用做法,可以搭配备忘录等剪枝优化。
代码
class Solution {
List
<String> res
= new ArrayList<>();
public List
<String> binaryTreePaths(TreeNode root
) {
if (root
== null
) {
return res
;
}
String track
= "";
dfs(root
, track
);
return res
;
}
public void dfs(TreeNode root
, String track
) {
if (root
== null
) {
return;
}
track
+= String
.valueOf(root
.val
);
if (isLeaf(root
)) {
res
.add(track
);
}
track
+= "->";
if (root
.left
!= null
) {
dfs(root
.left
, track
);
}
if (root
.right
!= null
) {
dfs(root
.right
, track
);
}
}
public boolean isLeaf(TreeNode root
) {
if (root
.left
== null
&& root
.right
== null
) {
return true;
}
return false;
}
}
转载请注明原文地址:https://tech.qufami.com/read-20875.html