上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 85 下一页
摘要: 题意:获得链表中心结点。当有两个中心结点时,返回第二个。 分析:快慢指针。 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : va 阅读全文
posted @ 2020-02-28 12:30 Somnuspoppy 阅读(128) 评论(0) 推荐(0)
摘要: 题意:将原链表分隔成k个链表,要求所有分隔的链表长度差异至多为1,且前面的链表长度必须大于等于后面的链表长度。 分析: (1)首先计算链表总长len (2)根据len得到分隔的链表长度要么为size,要么为size+1,由于前面的链表长度必须大于等于后面的链表长度,因此,前mod个分隔的链表长度为s 阅读全文
posted @ 2020-02-27 23:31 Somnuspoppy 阅读(136) 评论(0) 推荐(0)
摘要: 题意:判断是否为回文链表,要求时间复杂度O(n),空间复杂度O(1)。 分析: (1)利用快慢指针找到链表的中心 (2)进行步骤(1)的过程中,对前半部分链表进行反转 (3)如果链表长是偶数,首先比较slow和slow->next的值是否相等,若不相等返回false,否则,比较以slow -> ne 阅读全文
posted @ 2020-02-27 20:50 Somnuspoppy 阅读(221) 评论(0) 推荐(0)
摘要: 题意:两个非空链表求和,这两个链表所表示的数字没有前导零,要求不能修改原链表,如反转链表。 分析:用stack分别存两个链表的数字,然后从低位开始边求和边重新构造链表。 Input: (7 -> 2 -> 4 -> 3) + (5 -> 6 -> 4) Output: 7 -> 8 -> 0 -> 阅读全文
posted @ 2020-02-22 23:49 Somnuspoppy 阅读(147) 评论(0) 推荐(0)
摘要: 题意:交换链表中每两个相邻节点,不能修改节点的val值。 分析:递归。如果以第三个结点为头结点的链表已经两两交换完毕(这一步递归实现 swapPairs(head -> next -> next)),则接下来,只需交换前两个节点,再将第一个节点的next指向“以第三个结点为头结点的链表两两交换后”的 阅读全文
posted @ 2020-02-22 21:35 Somnuspoppy 阅读(194) 评论(0) 推荐(0)
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 85 下一页