JAVA 树状结构数据_根到每个最底层叶子的路径

求树的深度 随机给定一棵树,求树的深度 阅读详情

数据结构:

public class node {
    private String text;
    private List<node>childList;
    
    public String getText() {
        return text;
    }
    public void setText(String text) {
        this.text = text;
    }
    public List<node> getChildList() {
        return childList;
    }
    public void setChildList(List<node> childList) {
        this.childList = childList;
    }
   }

 数据准备:

 测试代码 

public class IteratorNodeTool {
    private void print(List lst)//打印出路径
    {
        Iterator it = lst.iterator();
        while (it.hasNext()) {
            node n = (node) it.next();
            System.out.print(n.getText() + "-");
        }
        System.out.println();
    }
    public void iteratorNode(node n, Stack<node> pathstack) {
        pathstack.push(n);//入栈
        List childlist = n.getChildList();
        if (childlist == null)//没有孩子 说明是叶子结点
        {
            List lst = new ArrayList();
            Iterator stackIt = pathstack.iterator();
            while (stackIt.hasNext()) {
                lst.add(stackIt.next());
            }
            print(lst);//打印路径
        } else {
            Iterator it = childlist.iterator();
            while (it.hasNext()) {
                node child = (node) it.next();
                iteratorNode(child, pathstack);//深度优先 进入递归
                pathstack.pop();//回溯时候出栈
            }
        }
    }
    public static void main(String[] args) {
        List<node> roots = node.getInitNode();
        IteratorNodeTool tool = new IteratorNodeTool();
        for (node n : roots) {
            Stack<node> pathstack = new Stack();
            tool.iteratorNode(n, pathstack);
        }
    }

}

输出结果: 

 

java树形结构根据父级节点获取其下面的所有最底层的根节点数据 因工作中需要根据任意父级节点查找到树形节点下的根节点信息,所以写了下面一个demo方便自己需要时的查看以及需要的人参考 一共两个类 TreeNode 使用了lombok插件 TreeNodeTest 主要的逻辑都在TreeNodeTest中 如果有错误的地方,还望留言评论,感谢 TreeNode @Data @AllArgsConstructor public class TreeNode { /** * 节点ID **/ private String id 阅读详情

相关推荐

Java:实现查找树的最低公共祖先LCA算法(附完整源码)

Java:实现查找树的最低公共祖先LCA算法(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 626

Java树形结构 根据父节点获取最底层节点数据 树形xml

Java树形结构 根据父节点获取最底层节点数据 树形xml

weixin_48568302的博客 3039

PyCharm安装PyQt5及工具(Qt Designer、PyUIC、PyRcc)详细教程来了

Qt是常用的用户界面设计工具,而在Python中则使用PyQt这一工具包,它是Python编程语言和Qt库的成功融合。这篇博文通过图文详细介绍在PyCharm中如何完整优雅地安装配置PyQt5的所有工具包,主要内容包括PyQt5、PyQt5-tools的依赖包安装和Qt Designer、PyUIC、PyRcc三个工具的设置。最后简单演示了PyQt5的调用方式及三个工具的使用方法。

Python966的博客 3万+

Java代码查询出树级结构的最底层结构

Java代码查询出树级结构的最底层结构

Java代码查询出树级结构的最底层结构 1902

Synares病毒实战:如何从U盘感染中恢复你的Excel和EXE文件(附专杀工具推荐)

本文详细介绍了Synares感染型病毒的典型特征与传播机制,特别是其通过U盘感染Excel和EXE文件的行为。文章提供了一套从应急隔离、诊断到使用专杀工具进行深度清除与文件恢复的完整实战流程,并推荐了有效的安全软件和修复方法,旨在帮助用户最大程度救回重要数据并构建长效安全防护习惯。

weixin_29230649的博客 1817

blenderproc 制作位姿估计数据集

blenderproc 制作位姿估计数据集 准备工作 1.首先需要去下载blenderproc的源码blenderproc,按照作者的readme文件进行编译。 2.其次需要下载bop_toolkit源码,链接如下bop_toolkit 3.说明:blenderproc主要用来生成数据,包括depth,rgb,位姿标签文件(scene_gt.json),bop_toolkit主要用来生成mask和mask_visib,scene_gt_info.json,用于判断物体的可见区域比例,如果遮挡太多考虑去掉。做

qq_43814359的博客 5697

《Java小子怒闯数据结构九重天》第六重天——树

本专栏文章主要用于帮助Java使用者快速上手数据结构,刷算法题!

apple_51673523的博客 2465

头歌 DNS协议分析第3关----DNS 报文分析

DNS 报文分析

qq_67667368的博客 4347

瑞_数据结构与算法_二叉树

什么是二叉树、二叉树的存储、使用树节点类TreeNode存储(代码)、使用数组存储、二叉树的遍历、广度优先遍历、深度优先遍历、深度优先——前序遍历、深度优先——中序遍历、深度优先——后序遍历、代码实现、递归实现——深度优先遍历、非递归实现——深度优先遍历、前序遍历、中序遍历、后序遍历、非递归实现深度优先——统一写法★★★、力扣题144 二叉树的前序遍历、力扣题94 二叉树的中序遍历、力扣题145. 二叉树的后序遍历

阿瑞——从事Java后端,喜欢研读源码、自研框架、分享经验 1386

3.7 改造模型:为GPT添加一个分类头(Classification Head)

本文介绍如何改造GPT模型用于文本分类任务。主要内容包括: 分类头设计思路:GPT作为语言模型需要添加分类头才能适应分类任务,类似于为语言大师添加裁判功能。 序列表示选择策略: 分析三种常见方法(CLS标记、平均池化、最后词元表示) 推荐使用最后词元表示,因其最能反映GPT的单向信息流特性 代码实现: 构建GPT2ForSequenceClassification类 包含预训练GPT主体和线性分类头 使用attention_mask智能定位句子结尾 通过高级索引提取最后词元特征 该方法通过简单改造使GPT模

yonggeit的博客 2971

Vue3 - 详细实现移动端H5网页调用摄像头拍照功能,微信公众号网页h5页面打开本地摄像头并点击按钮照相,vue3获取摄像头画面执行拍照保存,调整摄像头前置后置抓拍图片给用户展示或保存手机上传服务器

vue3,H5网页,手机移动端,vue3摄像头拍照,前端h5调用手机摄像头,移动端网页调用摄像头,H5实现手机拍照和选择上传,调用本地摄像头实现拍照,vue3调用摄像头拍照,手机浏览器开启摄像头并进行拍照,H5移动端网页中调用手机摄像头,H5实现web调用摄像头在线照相,vue3h5调用摄像头,微信公众号网页如何调用摄像头拍照,公众号H5页面实现打开摄像头照相,怎么生成临时图片,vue3项目调用摄像头实现拍照功能,摄像头打不开没反应,浏览器不兼容怎么办,摄像头权限不弹出,只能在本地运行,拒绝权限后怎么办,

🏆 前端领域优质创作者 1万+

java森林的遍历算法_树和树的算法

树和树的算法一、树1.1 树的概念树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个节点有零个或多个子节点;没有父节点的节点称为根节点;每一个非根节点有且只有一个父节点...

weixin_35980160的博客 630

Python 爬虫实战:爬取 B 站 UP 主的全部视频数据

本文详细介绍了基于Python开发B站UP主视频数据爬虫的技术方案。通过分析B站API接口,使用requests库发送HTTP请求并处理JSON数据,结合pandas进行结构化存储。文章重点解决了接口鉴权、分页爬取、反爬策略等核心难点,实现获取视频标题、播放量、点赞数等关键指标。同时强调数据爬取需遵守平台规范,仅限技术研究使用。该方案为B站视频内容分析提供了可靠的数据采集基础,具有实际应用价值。

2503_91057718的博客 2492

python学习之数据结构(六):数据结构与算法:树与树算法: 二叉树的创建、二叉树的遍历(深度遍历[先序遍历,中序遍历,后序遍历], 广度遍历)

一、树与树算法: 1.树的概念 树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点: 每个节点有零个或多个子节点; 没有父节点的节点称为根节点; 每一个非根节点有且只有一个父...

浅弋、璃鱼的博客 593

YOLO骨干网络改进-第1篇:深度解析YOLOv8的C2f模块原理与实现

首先,需要将自定义的C2f模块注册到Ultralytics的模块字典中。# 注册自定义模块"""自定义的C2f模块。"""# 自定义YOLOv8s配置文件:yolov8s_custom.yamlscales:# Backbonebackbone:# Headhead:# 加载自定义模型# 训练模型imgsz=640,batch=16,device=0,workers=8,设计理念:C2f模块是C3模块的演进,通过增加梯度分支来丰富梯度流,提升特征表示能力。结构原理。

2201_76125393的博客 110

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

数据结构系列1---树

一棵树,如图: 用来模拟具有树状结构性质的数据集合。 它是由n(n>0)个有限节点组成一个具有层次关系的集合。 复制代码 特点: 每个节点有零个或多个子节点; 没有父节点的节点称为根节点;(A) 每一个非根节点有且只有一个父节点; 除了根节点外,每个子节点可以分为多个不相交的子树; 复制代码 术语: 节点的度:一个节点含有的子树的个数称为该节点的度;(A的度为2) 树的度:一棵树中,最大的...

weixin_33704234的博客 135

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

SNMP协议原理与实战:网络监控的底层通信契约

SNMP(简单网络管理协议)是网络设备间通用的标准化管理通信机制,基于UDP实现轻量级、无状态的管理信息交互。其核心由管理站、代理和MIB三部分构成,通过OID树实现跨厂商设备的统一寻址与数据采集。作为支撑Zabbix、PRTG等主流监控平台的底层协议,SNMP虽不提供智能分析能力,却解决了‘设备可观测性’这一基础设施层的关键问题。它广泛应用于交换机、路由器、防火墙等网络设备的性能监控、故障告警与配置管理,尤其在多品牌混合组网、国产化替代及传统IT运维场景中不可替代。本文深入解析SNMP工作原理、OID寻址

weixin_30516243的博客 378

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

嵌入式视觉系统开发:深入解析Camera ISP时钟、电源与中断协同设计

在嵌入式系统开发中,时钟、电源与中断管理是确保硬件稳定、高效、低功耗运行的基础技术。时钟系统如同数字电路的心跳,为各功能模块提供精确的时序基准;电源管理则通过动态调整模块工作状态,实现能耗优化;中断机制作为异步事件响应核心,协调处理复杂任务流。这些底层硬件协同机制的技术价值在于,它们共同构成了系统可靠性的基石,直接影响图像处理的实时性、系统功耗与稳定性。其应用场景广泛覆盖智能手机相机模组、工业视觉检测以及车载感知系统等嵌入式视觉领域。本文以德州仪器(TI)的Camera ISP模块为例,聚焦于**时钟树设计

weixin_34198762的博客 404

第39章:Redis 8.x 新能力实战:JSON、Query、Vector 与语义缓存

本文探讨了基于Redis构建智能客服语义缓存系统的技术方案,通过四个关键实验验证Redis在JSON文档存储、Query Engine索引、向量检索和语义缓存集成方面的能力。文章揭示了RedisJSON通过树状结构实现原子性局部更新的优势,分析了Query Engine不同索引类型的特点和适用边界,比较了FLAT和HNSW两种向量检索策略的性能差异。最终提出一个端到端的RAG语义缓存Pipeline,并强调工程实践中需要在延迟、内存成本、准确性之间进行权衡。

davidwang456的专栏 617

Java二叉树和红黑树

目录 1 二叉树 2 二叉查找树 3 平衡二叉树 4 红黑树 笔者会据需补充二叉树的相关一系列知识,先更新最基本的二叉树的知识. 1 二叉树 二叉树的特点 二叉树中,任意一个节点的度要小于等于2 节点: 在树结构中,每一个元素称之为节点 度: 每一个节点的子节点数量称之为度 左子节点 右子节点 值 父节点 定义时一个节点四个变量 二叉树结构图 2 二叉查找树 二叉查找树的特点.

赵广陆 1198

Java集合—TreeMap底层原理

原文出自:http://cmsblogs.com/?p=1013。尊重作者的成果,转载请注明出处! 个人站点:http://cmsblogs.com TreeMap的实现是红黑树算法的实现,所以要了解TreeMap就必须对红黑树有一定的了解,其实这篇博文的名字叫做:根据红黑树的算法来分析TreeMap的实现,但是为了与Java提高篇系列博文保持一致还是叫做TreeMap比较好。通过这篇博文你可以获得如下知识点: 1、红黑树的基本概念。 2、红黑树增加节点、删除节...

sanmi8276的博客 1506

树形结构数据根据子id查找父级id与根据父级遍历最底层children的id

最近在写layui的项目,关于一个树形结构的问题。 先贴数据结构 [ { "id": 13, "title": "经营范围一", "parentId": null, "children": [ { "id": 16, "title": "01", "parentId": 13, "children": [ { "id": 592,

weixin_46808962的博客 3587

js获取树形结构的最深层级数和获取节点的方法

1、获取树形结构的最大深度或者最大层级的方法。 2、获取树形结构要展示的层级的节点id。

weixin_54754781的博客 3324

数据结构-树-获取深度(Java语言)

详细的代码可见github: https://github.com/AbitGo/myClassWork/tree/master/workspace_ds 两种非递归方法 public int getDepth(BiTreeNode t) { if (t != null) { int lDepth = getDepth(t.lchild); ...

韦海涛的博客 1137

二叉树(三)| 二叉树的高级操作(求高度、深度)(java实现)

二叉树节点的存储结构 public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } } 获取树的深度 树的深度是指从根节点到叶子节点的最长路径。 当前节点的深度示意图 1、递归实现获取树的深度 //(递归方式)获取以root为根节点的子树的深度:从叶子节点到达根节点的最长路径 public int

KevinBrain的博客 1989

项目算法: 计算树形结构的深度(层数)

项目算法: 计算树形结构的深度(层数) 今天在写项目的后台管理系统时,遇到一个需要算法的地方.即拖动某一节点到另一节点时,需要判断能否达到目标节点,且达到目标节点后需要计算新的level,而这两个地方都需要计算拖动的树形结构的深度(层数).抽象出来即是下图: 这里有两种思路写这个算法,一种是递归写法(简洁),另一种是非递归写法. 下面用js语言都列出来.写法1:以抽象图为例, 下面代码中的root即...

qq_43318840的博客 2022
上一篇: Hive 分区, alter添加分区,字段顺序无所谓
下一篇: spark 第一个程序, 求PI 值
Axel_Fr
博客等级 码龄11年 5粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值