LintCode 480

二叉树的所有路径

题目描述
给一棵二叉树,找出从根节点到叶子节点的所有路径。

扫码免费做题
↓↓↓

样例 1
输入:{1,2,3,#,5}输出:["1->2->5","1->3"]解释: 1 / \2 3 \ 5
样例 2
输入:{1,2}输出:["1->2"]解释:1 / 2
解题思路
使用分治算法(Divide Conquer)
源代码
// version 1: Divide ConquerpublicclassSolution{/** * @param root the root of the binary tree * @return all root-to-leaf paths */publicList<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 leafif (paths.size() == 0) { paths.add("" + root.val); }return paths; }}
查看完整代码,向左滑动
点击【阅读原文】,查看领扣原题
继续阅读
阅读原文