摘要: 很简单的一题,需要注意的是如果某结点重复了记得将其删除。 ListNode *deleteDuplicates(ListNode *head) { if (head == nullptr) return nullptr; ListNode *prev = head; for (ListNode *c 阅读全文
posted @ 2016-05-18 15:34 牧马人夏峥 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 思路就是定义两个链表,一个放大的,一个放小的,最后将两个连起来,注意细节问题。 ListNode *partionList(ListNode *head, int value) { ListNode left_dummy(-1); ListNode right_dummy(-1); auto lef 阅读全文
posted @ 2016-05-18 15:15 牧马人夏峥 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 这题用需要非常细心,用头插法移动需要考虑先移动哪个,只需三个指针即可。 ListNode *reverseList(ListNode *head, int m, int n) { ListNode dummy(-1); dummy.next = head; ListNode *prev = &dum 阅读全文
posted @ 2016-05-18 14:45 牧马人夏峥 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 这题并不难,但需要注意细节。 ListNode* addTwo(ListNode *l1, ListNode *l2) { ListNode dummy(-1); int carry = 0; ListNode *prev = &dummy; for (ListNode *pa = l1, *pb 阅读全文
posted @ 2016-05-18 14:00 牧马人夏峥 阅读(79) 评论(0) 推荐(0) 编辑