linked list summary

Linked list(easy) summary

119. Remove Nth Node From Endof List 快慢指针问题。一个快一个慢,然后删除指针的操作。注意如果删除的是头指针的话,要把头指针指向下一个。

221. Merge Two Sorted Lists注意递归和非递归两种方法。

324. Swap Nodes in Pairs  换相邻节点的指向,在即当p2 = p1->next时执行p1->next =p2->nextp2->next = p1。但是在交换的过程中还要保证交换后p2的前驱节点是交换前p1的前驱。在处理这种问题时,我们通常加上一个dummy头结点指向head,至于思路很清晰了就是隔一个去交换两个相邻结点

还有递归的方法:只需处理好最基础的一部分,剩下的递归。

483. Remove Duplicates fromSorted List 此题注意在跳两步的时候p->next=p->next->next;要判断p->next是否为0

5141. Linked List Cycle  使用快慢指针。如果链表有环,则两指针必在某一时刻相等。

6160. Intersection of TwoLinked Lists快慢指针问题。

7203. Remove Linked List Elements方法一1、先判断头节点以及头节点的后续节点是否是指定值,如果是,删除节点;2、然后再判断后续节点是否是指定值,如果是,删除节点,如果不是,一次遍历链表,直到最后一个节点。方法二:为简化代码,建立一个伪头结点,其next指向head,这样所有的操作都是一样,能够简化代码。和24. Swap Nodes in Pairs一样,因为要用到头结点的前驱节点,所以建立一个伪头结点。

8206. Reverse Linked List 分为遍历和非遍历两种方法。

9234. Palindrome Linked List快慢指针+翻转链表206.Reverse Linked List)。

10237. Delete Node in a Linked List  此题没有给头结点

正常情况下链表中节点的删除是需要知道被删除节点的前一个节点的,将它前一个节点的next指针指向它的下一个节点,这个节点就从链表中删除了。但是这里没有提供前一个节点,而是提供了当前节点。

一个技巧就是用它的下一个节点的值覆盖当前节点的值,然后将下一个节点删除掉,这样就等效删除了当前节点。但是需要注意这种方法不能删除尾节点。假删除,因为不能访问到节点的前一个指针,所以只能用后一个的去覆盖前一个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值