zoukankan      html  css  js  c++  java
  • leetcode-26-exercise_linked-list

    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;
        } 

  • 相关阅读:
    WinForm中快捷键与组合按键的设置方法
    WinForm窗体间传值的方法
    System.Data.SqlClient 命名空间
    登录
    查找和替换
    进制转换
    对话框
    Object基类
    抽象类与抽象方法
    千位数减百位数不退位 区间代换
  • 原文地址:https://www.cnblogs.com/pxy7896/p/6866575.html
Copyright © 2011-2022 走看看