| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> Java数据结构——链表练习题 -> 正文阅读 |
|
[数据结构与算法]Java数据结构——链表练习题 |
1. 获取单链表的节点个数实现思路: 从头结点开始遍历,并使用计数器进行计数即可 代码实现:
2.?查找单链表中的倒数第index个节点实现思路: 进行两次遍历 第一次遍历得到链表的长度 第二次遍历首先让temp指向第一个节点,然后往后遍历 size - index 个节点即可 代码实现:
3. 单链表的反转实现思路: 若链表为空或只有一个节点,无需做任何处理 创建两个临时节点temp和next,分别指向当前遍历到的节点及其下一个节点 创建一个新的头结点用于保存反转后的链表 遍历原来的链表,每遍历一个节点,就将其取出放在新链表的最前面 最后将原链表的头结点的next指向新链表头结点的next即可 代码实现:
4. 从尾到头打印单链表实现思路: 方法一:可利用上题中的单链表的反转实现,不再赘述 方法二:利用栈结构实现 将各个节点压入栈中,并依次出栈并打印即可 代码实现:
5. 合并两个有序单链表,合并后的链表仍然有序实现思路: 创建两个临时变量temp1、temp2指向对传入的两个链表遍历的当前节点 创建两个临时变量next1、next2指向两个链表当前节点的下一个节点 创建需要返回的链表,并用临时变量temp指向其头结点 循环中,首先判断temp1和temp2是否为null,若为null则说明有一个链表已经没有节点了,只需要将另一个链表整个插入到返回链表的最后即可。 若temp1和temp2均不为空,则使用临时变量next1、next2分别保存它们的下一个元素 比较两个链表中当前节点的数据大小,将数据小的节点的next置空(与原链表断开),将其插入到返回链表的最后,并将返回链表的指针后移,将刚刚数据小的节点的链表的当前节点指针后移 若两者数据相同,则同时加入到返回链表中并都后移即可 代码实现:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 16:29:20- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |