摘要:
链表很多题目还是应用穿针引线的方法。 这道题有两个关键之处: 1.要把tail->next = head 2.找到倒数 k % len + 1的节点,从而能访问到倒数k%len的节点。 阅读全文
posted @ 2018-09-04 23:02
ly-bnu
阅读(62)
评论(0)
推荐(0)
摘要:
这道题是merge two linked list的逆过程,即就是先要分成两个linked list,然后合并到一起即可。 阅读全文
posted @ 2018-09-04 21:29
ly-bnu
阅读(83)
评论(0)
推荐(0)
摘要:
这道题又是套路的一个特殊情况,具体代码如下: class Solution {public: ListNode* swapPairs(ListNode* head) { if (head == NULL || head->next == NULL) { return head; } ListNode 阅读全文
posted @ 2018-09-04 21:19
ly-bnu
阅读(73)
评论(0)
推荐(0)
摘要:
这道题和上面两道相比,是反转链表中更加普通的情况。 解决这道题需要两次循环,第一次求得长度,通过长度分段进行反转。第二次循环分段进行反转,分段反转就是Reverse Linked List II的情况了。 在第二次循环中有两个循环,一个是外层循环,一个是内层循环。内层的逻辑和之前的代码完全一致。外层 阅读全文
posted @ 2018-09-04 21:09
ly-bnu
阅读(89)
评论(0)
推荐(0)
摘要:
这道题和Reverse Linked List差不多,就是差一个范围。如果搞明白了那个套路,这道题还是非常简单的,具体代码如下所示: 阅读全文
posted @ 2018-09-04 20:57
ly-bnu
阅读(81)
评论(0)
推荐(0)
摘要:
我们先从该套路的一个最简单的情况说起,也就是206. Reverse Linked List。它是该套路的一个最简单的的情况,怎么个简单法呢?只需要一个循环即可解决问题。 那具体是怎么解决的呢? 假设虚拟头结点对应的值为-1,我们要反转的链表为1->2->3->4。连接起来即就是-1->1->2-> 阅读全文
posted @ 2018-09-04 20:47
ly-bnu
阅读(185)
评论(0)
推荐(0)

浙公网安备 33010602011771号