Binary Tree Paths

打印所有的从root到leaf的path.

开始用的queue做的..后来看了下别的人的答案, 感觉都很简练.po一个别人的答案

 

public List<String> binaryTreePaths(TreeNode root) {
        List<String> res = new ArrayList<String>();
        if(root == null)
            return res;
        if(root.left == null && root.right == null)
            res.add(root.val + "");
        else{
            if(root.left != null)
                res.addAll(binaryTreePaths(root.left));
            if(root.right != null)
                res.addAll(binaryTreePaths(root.right));
            for(int i = 0 ; i < res.size(); i++)
                res.set(i,root.val + "->" + res.get(i));
        }
        return res;
    }