给你一个二叉树的根节点 root
,按 任意顺序 ,返回所有从根节点到叶子节点的路径。
叶子节点 是指没有子节点的节点。
class Solution{public List<String> binaryTreePaths(TreeNode root){List<String> paths = new ArrayList<>():constructPath(root, "", paths);return paths;}public void constructPath(TreeNode root, String s, List<String> paths){// s用来记录路径,每执行一次constructPath,添加一个节点的val,用s记录所有被添加的,// 并将s作为参数,传到下一次的函数调用if(root != null){StringBuffer sb = new StringBuffer(s);sb.append(Integer.toString(root.val));// 通过调用包装类的方法,将int转化成Stringif(root.left == null && root.right == null) paths.add(sb.toString());sb.append("->");constructPath(root.left, s, paths);constructPath(root.right, s, paths);}}
}