给定一个二叉树,返回所有从根节点到叶子节点的路径。
说明: 叶子节点是指没有子节点的节点。
示例:
输入:
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)); } } } }