240
笔下虽有千言,胸中实无一策
摘要: 题解 基于 Reverse Linked List 的同样思路,稍加修改,即可。但代码不够简洁,看上去过程也有些冗余。 class Solution { public: ListNode* reverseBetween(ListNode* head, int m, int n) { ListNode 阅读全文
posted @ 2020-09-09 04:09 CasperWin 阅读(115) 评论(0) 推荐(0)
摘要: 题解 很基础的题,与reverseDoublyLinkedList(Hackerrank)那道题作对照,实际上只有一样代码的差别。 class Solution { public: ListNode* reverseList(ListNode* head) { if(!head || !head-> 阅读全文
posted @ 2020-09-09 03:21 CasperWin 阅读(147) 评论(0) 推荐(0)
摘要: 题解 与Leetcode上翻转链表(206. Reverse Linked List)思路一致,只不过多了一个“prev”前节点的处理,这种题通过画图比较容易验证。 DoublyLinkedListNode* reverse(DoublyLinkedListNode* head) { if(!hea 阅读全文
posted @ 2020-09-09 03:17 CasperWin 阅读(136) 评论(0) 推荐(0)
摘要: 题解 很简单的题,要注意检查空节点。 DoublyLinkedListNode* sortedInsert(DoublyLinkedListNode* head, int data) { if(!head) { head = new DoublyLinkedListNode(data); retur 阅读全文
posted @ 2020-09-09 02:26 CasperWin 阅读(149) 评论(0) 推荐(0)
摘要: 题解 方法一:龟兔赛跑 最先想到的方法,姑且叫它“龟兔赛跑”:先计算两条LinkedList的长度,然后让长的那条先走,直到剩下的节点数一样,相当于回到同一起跑线。接下来,以同样的步调向后遍历并比较节点。代码写起来不是很简洁,但是并不影响复杂度,能通过。 class Solution { publi 阅读全文
posted @ 2020-09-09 02:11 CasperWin 阅读(145) 评论(0) 推荐(0)