九章答案
// version 1: Divide Conquer public class Solution { /** * @param root the root of the binary tree * @return all root-to-leaf paths */ public List<String> binaryTreePaths(TreeNode root) { List<String> paths = new ArrayList<>(); if (root == null) { 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); } // root is a leaf if (paths.size() == 0) { paths.add("" + root.val); } return paths; } }
我写的
/** * Definition of TreeNode: * public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val) { * this.val = val; * this.left = this.right = null; * } * } */ public class Solution { /** * @param root the root of the binary tree * @return all root-to-leaf paths */ public List<String> binaryTreePaths(TreeNode root) { // Write your code here List<String> paths = new ArrayList<String>(); if(root == null) { return paths; } //leaf if(root.left == null && root.right == null) { paths.add(root.val + "");//不能paths.add(root.val);要转换成string } List<String> leftpath = binaryTreePaths(root.left); List<String> rightpath = binaryTreePaths(root.right); for(String path : leftpath) { paths.add(root.val + "->" + path); } for(String path : rightpath) { paths.add(root.val + "->" + path); } return paths; } }
时间: 2024-10-16 05:54:56