精通算法系列-二叉树路径

来源:互联网 发布:今日网络热点 编辑:程序博客网 时间:2024/05/21 13:54

原题:

// Given a binary tree, return all root-to-leaf paths.// For example, given the following binary tree://    1//  /   \// 2     3//  \//   5// All root-to-leaf paths are:// ["1->2->5", "1->3"]/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */

意思就是:把二叉树根到叶的路径打印出来

答案:

public class Solution {    public List<String> binaryTreePaths(TreeNode root) {        List<String> result = new ArrayList<String>();        if(root == null) return result;        helper(new String(), root, result);        return result;    }    public void helper(String current, TreeNode root, List<String> result) {        if(root.left == null && root.right == null) result.add(current + root.val);        if(root.left != null) helper(current + root.val + "->", root.left, result);        if(root.right != null) helper(current + root.val + "->", root.right, result);    }}

核心思路:利用递归并打印当前节点

原创粉丝点击