单链表
dreamer_it
Nothing is impossible!
展开
-
面试题之逆序打印单链表(Java实现)
前提:在不改变原来单链表的结构的情况下,逆序打印单链表的内容。实现原理单链表中的一个节点保存的是数据和下一个节点的地址,现在要实现逆序打印单链表中的数据值,我们可以借助栈来实现逆序打印,将每一个节点压入栈中,利用栈先进后出的特点,最后一个进栈的节点将会最先出栈,正好符合我们所说的逆序打印。首先判断单链表是否存在有效节点,如果不存在则不能打印节点信息。再遍历单链表,将遍历出的每个节点放...原创 2019-09-18 16:21:23 · 632 阅读 · 0 评论 -
单链表之和(Java实现)
题目:数据在机器中存储的方式,比如342,在链表中是逆向存储的,所以就变成了2->4->3这样了,同样5->6->4就是465,给出两个用链表表示的数字,求两数字之和。要求以链表的方式返回,上面的例子就返回7->0->8实现原理:首先写出单链表的结构,定义一个函数,传入两个链表。当两个链表的其中一个链表为空时,则将链表里面存放的数据用0表示,当两个链表...原创 2019-09-19 15:17:19 · 233 阅读 · 0 评论 -
双链表的实现(Java实现)
双链表与单链表的区别是,单链表只能沿着一个方向去查找,双链表可以沿着正向和反向进行查找。如下图所示。单链表的实现可以看我前面的博客实现原理在原来单链表的属性中会添加一个pre(存放前一个节点的地址),原有属性不变。查找:和单链表的查找是完全一样的,只不过,通过反方向也可以进行查找修改:和单链表的修改是一样的。删除:删除有点特殊,单链表是将一个节点移除之后,将该节点...原创 2019-09-20 13:04:20 · 403 阅读 · 0 评论 -
环形单链表实现——约瑟夫问题
本文主要是借助环形链表解决约瑟夫环问题,约瑟夫问题是,设编号为1,2,...n的n个人围坐成一圈,约定编号为k(1<=k<=n) 的人从1开始报数,数到m的那个人就出列,依次类推,直到所有都出列为止,由此产生一个出队的序列。提示:用一个不带头结点的循环链表来处理该问题,先构成一个有n个节点的单循环链表,然后由k节点起从1开始计数,计到m是,对应节点从链表中删除,然后再从被删除...原创 2019-09-21 16:11:24 · 2626 阅读 · 0 评论