给定一个二叉树,返回所有从根节点到叶子节点的路径。
说明: 叶子节点是指没有子节点的节点。
示例:
输入:
1
/
2 3
5
输出: [“1->2->5”, “1->3”]
解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3
1.DFS(递归)
class Solution{
public List<String> binaryTreePaths(TreeNode root) {
List<String> result = new ArrayList();
DFS(root, result, new StringBuffer());
return result;
}
private void DFS(TreeNode root, List<String> result, StringBuffer SB){
//因为要对List中单独的字符串做出变动,所以要用StringBuffer
if (root != null){
SB.append(root.val);
if (root.left == null && root.right == null){
result.add(SB.toString());
}else{
SB.append("->");
//需要加上一个原来就存在的String参数
DFS(root.left, result, new StringBuffer(SB));
DFS(root.right, result, new StringBuffer(SB));
}
}
}
}