码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode-26-exercise_linked-list

时间:2017-05-22 09:25:34      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:node   检查   不能   leetcode   nod   div   连接   lists   初始化   

141. Linked List Cycle

Given a linked list, determine if it has a cycle in it.

解题思路:

需要检查before和after隔一个的情况。因为除了开始时,如果检查的是before和after相邻,那么两个元素成环时,after跑到before后面,也就

不能检查到环了。

bool hasCycle(ListNode *head) {
        if (head == NULL)
            return false;
        ListNode* before = head;
        ListNode* after = before->next;
        while (after != NULL && after->next != NULL) {
            if (after == before)
                return true;
            before = before->next;
            after = after->next->next;
        }
        return false;
    }  

21. Merge Two Sorted Lists

按升序合并两个链表

解题思路:

当l1和l2不空时,比较它们的表头值,放入小的,同时移动指针。当有一个链表为空时,剩下的那个必然是更大的部分,直接连接上就好。

最后,由于初始化时给了一个表头,所以要返回表头下一个点。

ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
        ListNode* result = new ListNode(0);
        ListNode* temp = result;
        while (l1 != NULL && l2 != NULL) {
            if (l1->val < l2->val) {
                temp->next = l1;
                l1 = l1->next;
            } else {
                temp->next = l2;
                l2 = l2->next;
            }
            temp = temp->next;
        }
        if (l1 != NULL)
            temp->next = l1;
        else
            temp->next = l2;
        return result->next;
    } 

 

leetcode-26-exercise_linked-list

标签:node   检查   不能   leetcode   nod   div   连接   lists   初始化   

原文地址:http://www.cnblogs.com/pxy7896/p/6866575.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!