Leetcode 二叉树的所有路径

一. 递归方法

主要思想,递归遍历整棵二叉树,每遍历到一个节点,并把节点加入路径,判断是否为叶节点

1.是叶节点,就把当前这个路径添加到List里,

2.不是叶节点,就在当前路径后加“->”(这是因为题目有格式要求,如果没有就可以省略),然后继续遍历当前节点的左右子树

    public List binaryTreePaths(TreeNode root) {
        List paths = new ArrayList ();
        String path = "";
        printpath(root, path, paths);
        return paths;

    }
    
    public void prinpath(TreeNode root , String path, List paths)
    {
        if(root != null)
        {
            path += Integer.toString(root.val);
            if(root.left == null && root.right == null)
            {
                paths.add(path);
            }
            else
            {
                path += "->";
                printpath(root.left, path, paths);
                printpath(root.right, path, paths);
            }
        }
    }    
        


 

你可能感兴趣的:(Leetcode 二叉树的所有路径)