链表又来了,可见ListNode 这个数据结构出现之频繁。 本题求解链表中是否存在环路,让我去看看题解怎么区分环路。 盲猜双指针法 两种方法: 1.set,比用List快很多 2.快慢指针 知识点: 1.链表中假定所有元素都不重复,所以只要出现重复元素就说明有循环 空间复杂度>O(1) 1.因为 之 ...
分类:
其他好文 时间:
2020-01-26 17:36:01
阅读次数:
59
又是链表,怎么又是链表,暴风哭泣了 一看到链表的题我就下意识先去看答案了,先吐槽一会再回去继续写。 仔细看了下,答案中采用了 递归的归并排序方法: 1. Cut步骤: 在顶层将完整的ListNode分成两半, basecase 是 head is None or head.next is None ...
分类:
编程语言 时间:
2020-01-25 20:44:18
阅读次数:
102
019题: 第一种方法:暴力解,借鉴002创建一个新的ListNode存储答案,先遍历原ListNode获得他的长度并把他放入map,然后读取map并创建出答案来。 其中创建的这个节点的第一位置其实是一个哑节点(dummy node)。用于简化某些极端情况! 这种解法的内存占用大,用时慢。对于内存占 ...
分类:
其他好文 时间:
2020-01-25 19:36:24
阅读次数:
68
1.一般涉及到链表(ListNode)的时候,往往我们会得到一个头节点 head,对头节点处理都是不动它,声明一个复制它的变量。 本题中 ha,hb = headA,headB 然后再双指针法进行计算。 2. 条件赋值 ha = ha.next if ha else headB ...
分类:
其他好文 时间:
2020-01-25 19:35:49
阅读次数:
81
redis中动态字符串sds相关的文件为:adlist.h与adlist.c 一、数据结构 redis里定义的双向链表,与普通双向链表大致相同 单个节点: 1 typedef struct listNode { 2 struct listNode *prev; 3 struct listNode * ...
分类:
其他好文 时间:
2020-01-25 19:33:02
阅读次数:
107
题目描述:反转一个单链表。示例:输入: 1 2 3 4 5 NULL输出: 5 4 3 2 1 NULL迭代解法/ Definition?for?singly linked?list.public?class?ListNode?{ int?val; ListNode?next; ListNode(i ...
分类:
编程语言 时间:
2020-01-25 12:57:23
阅读次数:
78
题目描述: 给定一个链表,判断链表中是否有环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 1,则在该链表中没有环。 Map集合解法 思路: 创建一个map集合,key为节点,value为地址值,因为ListNode没有重写t ...
分类:
编程语言 时间:
2020-01-24 09:27:15
阅读次数:
88
输入一个链表,按链表从尾到头的顺序返回一个ArrayList 遇到这种逆置的问题,一般使用栈的先进后出的特性 public class Solution { public ArrayList<Integer> printListFromTailToHead(ListNode listNode) { ...
分类:
其他好文 时间:
2020-01-22 23:42:14
阅读次数:
71
206. 反转链表 反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL /** * Definition for singly-linked list. * struct ListNode { * int val; * ListN ...
分类:
其他好文 时间:
2020-01-20 12:54:50
阅读次数:
53
要求: 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 代码: /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; ...
分类:
其他好文 时间:
2020-01-18 21:04:01
阅读次数:
90