下一章 上一章 目录 设置
6、7.20 链表 ...
-
练背
+38min无跳跃有氧
链表题
141 环形链表
判断是否为环形链表,建立两个指针,slow走一步,fast走两步,当两个指针相遇时,则说明是环形链表
142环形链表2
涉及到公式计算,如141题一样,先要确定第一次相遇的位置,之后重新定义一个指针,重头开始,使新指针和slow指针每次走一步,当相遇时,就是其环形点
160 相交链表方法一:用stack,放入栈后,一个个进行比较
方法二:用map,代码如下:
class Solution {
public:
ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {
map m;
while(headA){
m[headA]++;
headA=headA->next;
}
while(headB){
if(m.find(headB)!=m.end())return headB;
headB=headB->next;
}
return NULL;
}
};
19. 删除链表的倒数第n个结。
方法一:我是计算出来链表长度后,直接删。注意边界
方法二:双指针也搞定了