首页 > 代码库 > 二叉树的所有路径
二叉树的所有路径
九章答案
// 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; } }
二叉树的所有路径
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。