问题描述
java实现
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
//way1
//递归 分治的思想
public List<String> binaryTreePaths(TreeNode root) {
List<String> paths=new ArrayList<String>();
if(root==null)
return paths;
//root为一个叶子节点
if(root.left==null && root.right==null){
paths.add(""+root.val);
return paths;
}
//分
List<String> leftPaths=binaryTreePaths(root.left);
List<String> rightPaths=binaryTreePaths(root.right);
//和
for (String path:leftPaths)
paths.add(root.val+"->"+path);
for (String path:rightPaths)
paths.add(root.val+"->"+path);
return paths;
}
}