博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二叉树的所有路径
阅读量:6715 次
发布时间:2019-06-25

本文共 1670 字,大约阅读时间需要 5 分钟。

给一棵二叉树,找出从根节点到叶子节点的所有路径。

样例

给出下面这棵二叉树:

1 /   \2     3 \  5

所有根到叶子的路径为:

[  "1->2->5",  "1->3"]

 

解:很经典的一道题,很简单但是还是有一些注意的点。

先上代码

/** * Definition of TreeNode: * public class TreeNode { *     public int val; *     public TreeNode left, right; *     public TreeNode(int val) { *         this.val = val; *         this.left = this.right = null; *     } * } */public class Solution {    /*     * @param root: the root of the binary tree     * @return: all root-to-leaf paths     */    public List
binaryTreePaths(TreeNode root) { // write your code here List
> ans = new ArrayList
>(); List
temp = new ArrayList
(); List
temptemp; List
ansrel = new ArrayList
(); if(root == null){ return ansrel; } work(root,ans,temp); for(int i = 0; i
"; } } ansrel.add(tmp); } return ansrel; } public void work(TreeNode root,List
> ans,List
temp){ if(root.left == null&&root.right == null){ temp.add(root.val); ans.add(new ArrayList
(temp)); temp.remove(temp.size()-1); }else if(root.left == null){ temp.add(root.val); work(root.right,ans,temp); temp.remove(temp.size()-1); }else if(root.right == null){ temp.add(root.val); work(root.left,ans,temp); temp.remove(temp.size()-1); }else{ temp.add(root.val); work(root.left,ans,temp); work(root.right,ans,temp); temp.remove(temp.size()-1); } return; }}

这道题还算简单。 每次一层放入当前节点 然后左右子树递归调用,然后当前层返回之前把当前层的值remove掉。

存进去的条件是没有左右子树。(如果插入条件写成为空的话,会出现重复的情况,会把一个节点的左右空子树放进去,各自生成一个,但是是一样的)

最后给转化成那种字符串形式。 注意这里的列表是索引传递 需要ans.add(new ArrayList(temp));

这样写

转载于:https://www.cnblogs.com/tobemaster/p/7980953.html

你可能感兴趣的文章
tomcat配置文件详解
查看>>
iOS NSURLSession DownloadTask(下载任务)
查看>>
vue解决字段类型为数字导致单选不正确的问题
查看>>
Prometheus 2.0正式推出 性能提升带来质的飞跃
查看>>
WPF实现抽屉效果
查看>>
http2-浏览器支持的情况
查看>>
去除百度置顶的广告,优化百度搜索
查看>>
设计模式(六)适配器模式
查看>>
GTK+重拾--04 菜单栏使用
查看>>
设计模式(十七) 迭代器模式
查看>>
线性回归 极大似然 参差满足高斯分布
查看>>
持续集成之测试自动化
查看>>
多字符串拼接
查看>>
后台登录——实验吧
查看>>
表格存储如何在控制台使用多元索引(SearchIndex)功能
查看>>
Java并发编程艺术----读书笔记(一)
查看>>
第1章—Spring之旅—简化Spring的java开发
查看>>
Spring Web MVC框架(九) XML和JSON视图与内容协商
查看>>
百度地图深度使用
查看>>
c++11新特性
查看>>