随笔分类 -  链表题

摘要:题目详情 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空) 详解 1.复制链表 2.加入复制链表的random节点 3.将原链表与复制 阅读全文
posted @ 2020-03-19 00:22 xxcnotes 阅读(81) 评论(0) 推荐(0)
摘要:题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 详解 在return res 代码上 以此往前递归。 /* public class ListNode { int val; ListNode next = null; ListNode(int 阅读全文
posted @ 2020-03-18 22:12 xxcnotes 阅读(114) 评论(0) 推荐(0)
摘要:题目描述 输入一个链表,反转链表后,输出新链表的表头。 题目详解 递归,先顺序递归到倒数第二个节点。然后以此回归,并设置head.next = null。保证首节点反转变成最后一个节点后的下一个节点为null。 /* public class ListNode { int val; ListNode 阅读全文
posted @ 2020-03-18 21:27 xxcnotes 阅读(92) 评论(0) 推荐(0)
摘要:题目描述 输入一个链表,输出该链表中倒数第k个结点。 详解 采用两个指针,快指针与慢指针。 快指针先向前k-1步。然后两个指针同时走,当快指针到达最后一个节点时,此时慢指针即为倒数第k个节点。 时间复杂度为O(n)。 public class Solution { public ListNode F 阅读全文
posted @ 2020-03-18 20:35 xxcnotes 阅读(75) 评论(0) 推荐(0)
摘要:题目描述 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 题解 采用递归法,先递到尾部节点,再回归到头部节点。 /** * public class ListNode { * int val; * ListNode next = null; * * ListNode(int val) 阅读全文
posted @ 2020-03-18 20:16 xxcnotes 阅读(87) 评论(0) 推荐(0)