二叉树的所有路径

257. 二叉树的所有路径

给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。

叶子节点 是指没有子节点的节点。

力扣题目链接地址

public List binaryTreePaths(TreeNode root){

        List result =new ArrayList<>();

        if (null == root){

            return  result

        }

        List path =new ArrayList<>();

        traversal(root,path,result);

        return result;

}

//递归 确定参数、返回类型

private void traversal(TreeNode treeNode, List path, List result){

        path.add(treeNode.val);

        //终止条件

        if (treeNode.left ==null && treeNode.right ==null){

            //用来组装结果

            StringBuilder sb =new StringBuilder();

            for (int i=0; i<path.size()-1;i++){

                    sb.append(path.get(i)).append("->");

            }

            sb.append(path.get(path.size()-1));

            result.add(sb.toString());

            return;

        }

        //每层处理逻辑

        if (treeNode.left !=null) {

            traversal(treeNode.left, path, result);

            path.remove(path.size()-1); //回溯

        }

        if (treeNode.right !=null) {

            traversal(treeNode.right, path, result);

            path.remove(path.size()-1); //回溯

        }

    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容