Leet#257 Binary Tree Paths

public List binaryTreePaths(TreeNode root) {
        List list = new ArrayList<>();
        if(root==null)
            return list;
        else
            findpath(root,list,"");
        return list;
    }
    public static void findpath(TreeNode root,List list,String path){
        String val = String.valueOf(root.val);
        if(root.left!=null&root.right!=null){
            path = path+val+"->";
            findpath(root.left,list,path);
            findpath(root.right,list,path);
        }
        else if(root.left==null&root.right!=null){
            path = path+val+"->";
            findpath(root.right,list,path);
        }
        else if(root.left!=null&root.right==null){
            path = path+val+"->";
            findpath(root.left,list,path);
        }else
            list.add(path+val);
        
    }

采用递归的方式,分析每个节点是否有左右孩子,进行判断。

你可能感兴趣的:(Leet#257 Binary Tree Paths)