刷题专栏(十四):二叉树的所有路径

简介: 刷题专栏(十四):二叉树的所有路径

前言

刷题专栏到目前已经是第十四篇了,欢迎大家来关注我的刷题专栏,一起来刷题。

今天我们要来看的这道题,主要是考察二叉树的理解,没有什么逻辑,说白了,技术含量低。

下面我们就一起来看看吧。

image.png

算法题:二叉树的所有路径

从这道题的题目来看,这道题其实没什么难度的。

但是看了示例之后,发现还是对二叉树的理解要求比较高一些的。

要解出这道题,首先要通过递归的方式来拿到所有的节点数据。

而且还要在递归的过程中,拼接存在的路径。

然后将结果存入一个List集合中,这里的List集合只是用来存储路径的,所以不要过多的被这个参数影响。

下面就来看一下具体的代码逻辑吧。

代码展示

今天执行的代码如下所示,主要是利用递归来实现的,这个方式还是挺好理解的。

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public List<String> binaryTreePaths(TreeNode root) {
        List<String> resultList = new ArrayList<String>();
        path(root, "", resultList);
        return resultList;
    }
    public void path(TreeNode root, String path, List<String> resultList) {
        if (root != null) {
            StringBuffer p = new StringBuffer(path);
            p.append(Integer.toString(root.val));
            if (root.left == null && root.right == null) {  
                resultList.add(p.toString());  
            } else {
                p.append("->");  
                path(root.left, p.toString(), resultList);
                path(root.right, p.toString(), resultList);
            }
        }
    }
}

代码执行结果

执行结果还可以,主要是StringBuffer占内存了,换成StringBuild可能会好一些,太懒没去试,就交给大家自己去试一试了。

image.png

总结

今天的题目没什么难度,所以比较适合对二叉树的理解不是很多的人群,或者是对二叉树不了解的朋友们。

目录
打赏
0
0
0
0
2
分享
相关文章
【优选算法专栏】专题十六:BFS解决最短路问题---前言
【优选算法专栏】专题十六:BFS解决最短路问题---前言
76 1
|
9月前
|
【优选算法专栏】专题十八:BFS解决拓扑排序--前言
【优选算法专栏】专题十八:BFS解决拓扑排序--前言
73 1
牛客网刷题笔记小节(二)
牛客网刷题笔记小节(二)
|
9月前
|
刷题专栏(十三):二叉搜索树的最近公共祖先
刷题专栏(十三):二叉搜索树的最近公共祖先
48 0
|
9月前
|
刷题专栏(十一):二叉树的后序遍历
刷题专栏(十一):二叉树的后序遍历
69 0
|
9月前
|
刷题专栏(十二):翻转二叉树
刷题专栏(十二):翻转二叉树
76 0
|
9月前
|
刷题专栏(十五):各位相加
刷题专栏(十五):各位相加
67 0
|
9月前
|
刷题专栏(十八):第一个错误的版本
刷题专栏(十八):第一个错误的版本
61 0
一篇文章入门单链表+刷题实践【java实现+详细注释】
一篇文章入门单链表+刷题实践【java实现+详细注释】
10686 2
数据结构与算法(十三)B+树
数据结构与算法(十三)B+树
64 0