随笔分类 - 链表
摘要:解法1:利用集合 思路:利用集合判断节点是否重复出现,第一个重复出现的节点就是入口节点 代码: public class A2 { static class ListNode{ ListNode next; int val; } public static ListNode circleEntran
阅读全文
摘要:题目:给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性 解法:双指针 代码: /** Definition for singly-linked list. public class ListNode { int v
阅读全文
摘要:题目:输入两个链表,找出它们的第一个公共节点。 解法一:利用HashSet,比较捞 解法二:双指针 思路:两个链表长度分别为m+C、n+C, C为公共部分的长度,第一个人走完一轮后,回到第二个人起点走n步;第2个人走了n+C步后,回到第一个人起点走m步。 此时它们因走的步数相同而相遇。 代码: /*
阅读全文
摘要:题目:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 解法一:借助栈 思路:栈的特点是先进后出,java有stack类 代码: /** Definition for singly-linked list. public class ListNode { int val; Lis
阅读全文
摘要:题目:定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 解法一:双指针(简单) 思路:直接让后一个指向前一个 解法二:递归 思路:将链表看作已经反转和还未反转两个部分 代码: /** Definition for singly-linked list. public clas
阅读全文

浙公网安备 33010602011771号