
链表问题
凌风暨
最怕你一生碌碌无为,还安慰自己平凡可贵
展开
-
链表问题——删除链表的中间节点和a/b处的节点
【题目】 给定链表的头结点head,实现删除链表的中间节点的函数 例如: 不删除任何节点; 1->2,删除节点1; 1->2->3,删除节点2; 1>2->3->4,删除节点2; 1->2->3->4->5,删除节点3; 进阶: 给定链表的头结点head、整数a和b,实现删除位于a/b处节点的函数 例如: 链表:1->2->3->4->5,假设a/b原创 2017-11-03 16:54:16 · 431 阅读 · 0 评论 -
链表问题——两个单链表生成相加链表
【题目】 假设链表中每一个节点的值都在0-9之间,那么链表整体就可以代表一个整数 例如:9->3->7代表937 给定两个这种链表的头节点head1和head2,请生成代表两个整数相加值的结果链表,并返回结果链表的头节点,注意进位问题【代码】//介绍两种方法,一种利用栈,一种利用逆序链表import java.util.*;class Node{ public int原创 2017-12-18 21:38:34 · 633 阅读 · 0 评论 -
链表问题——打印两个有序链表的公共部分
【题目】 给定两个有序链表的头指针head1和head2,打印两个链表的公共部分。【代码实现】class Node{ public int value; public Node next; public Node(int data){ this.value = data; }}public void printCommonPart(Node h原创 2017-09-24 19:31:29 · 457 阅读 · 0 评论 -
链表问题——在单链表和双链表中删除倒数第K个节点
【题目】 分别实现两个函数,一个可以删除单链表中倒数第K个节点,另一个可以删除双链表中倒数第K个节点。【要求】 如果链表长度为N,时间复杂度达到O(N),时间复杂度达到O(N),额外空间复杂度达到O(1)【解答】 本题较为简单,实现方式也是多种多样的,这里只介绍一种方法。 先来看看单链表如何调整。如果链表为空或者K值小于1,这种情况下,参数是无效的,直接返回即可。除此之外,让原创 2017-09-24 20:59:51 · 741 阅读 · 0 评论 -
链表问题——反转单向链表和双向链表
import java.util.*;//单向链表结点public class Node{ public int value; public Node next; public Node(int data){ this.value = data; }}//反转单向链表public Node reverseList(Node head){原创 2017-11-16 21:06:10 · 384 阅读 · 1 评论 -
链表问题——判断一个链表是否为回文结构
【题目】 给定一个链表的头结点head,请判断该链表是否为回文结构 例如: 1->2->1 返回true 1->2->3 返回false【代码】 演示三种方法 import java.util.*;class test{ class Node{ public Node head; public int value;原创 2017-11-21 21:21:24 · 445 阅读 · 0 评论 -
Java——将单向链表按某值划分成左边小、中间相等、右边大的形式(基础问题)
【题目】 给定一个单向链表的头节点head,节点的值类型是整型,再给定一个整数pivot。实现一个调整链表的函数,将链表调整为左边部分都是值小于pivot的节点,中间部分都是值等于pivot的节点,右边部分都是值大于pivot的节点。除这个要求外,对调整后的节点顺序没有更多的要求。 例如:链表9->0->4->5->1,pivot=3 调整后的链表可以使1->0->4->9->5,原创 2017-11-27 21:32:35 · 527 阅读 · 0 评论 -
Java——环形单链表的约瑟夫问题
【题目】 41个人排成一个圆圈,由第1个人开始报数,报数到3的人就自杀,然后再由下一个人重新报1,报数到3的人再自杀,这样依次下去,知道剩下最后一个人时,那个人可以自由选择自己的命运【代码】import java.util.*;class test{ public class Node{ public int value; public原创 2017-11-20 09:51:45 · 658 阅读 · 0 评论 -
Java——将单向链表按某值划分成左边小、中间相等、右边大的形式(进阶问题)
【题目】 与上一篇博客相似,唯一的不同就是在原问题的要求智商再增加如下两个要求。 在左、中、右三个部分的内部也做顺序要求,要求每部分里的节点从左到右的顺序与原链表中节点的先后次序一致【代码】public static Node listPartition2(Node head,int pivot) { Node sH = null; Node sT = null;原创 2017-11-28 16:56:00 · 345 阅读 · 0 评论 -
链表问题——复制含有随机指针节点的链表
心情不好,写篇博客放松一下↓ 【题目】 一种特殊的链表节点类描述如下: class Node{ public int value; public Node next; public Node rand; public Node(int data) { this.value = data; }} Node类中的value原创 2017-12-18 01:24:40 · 215 阅读 · 0 评论