zoukankan      html  css  js  c++  java
  • 合并两个有序链表

    方法一:

    /**
     * Definition for singly-linked list.
     * struct ListNode {
     *     int val;
     *     ListNode *next;
     *     ListNode(int x) : val(x), next(NULL) {}
     * };
     */
    class Solution {
    public:
        ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
           if(l1 == NULL) return l2;
            if(l2 == NULL) return l1;
            ListNode* head;
            ListNode* end;
            head=(ListNode*)malloc(sizeof(ListNode));
            head->next=NULL;
            end=head;
            while(l1&&l2)
            {
                if(l1->val<=l2->val)
                {
                    end->next=l1;
                    end=end->next;
                    l1=l1->next;
                }
                else
                {
                    end->next=l2;
                    end=end->next;
                    l2=l2->next;
                }
            }
            if(l1)
            {
                end->next=l1;
            }
            if(l2)
            {
                end->next=l2;
            }
            return head->next;


        }
    };

    方法二:

    /////来自网上的方法

    if(l1 == NULL) return l2;

            if(l2 == NULL) return l1;

            ListNode *l, *ans;

            if(l1->val > l2->val) {

                l = l1;

                l1 = l2;

                l2 = l;

            }

            ans = l1;

            while(l2 != NULL) {

                if(l1 == NULL) return ans;

                if(l1->val <= l2->val) {

                    if(l1->next == NULL||l1->next->val >= l2->val){

                        l = l2;

                        l2 = l2->next;

                        l->next = l1->next;

                        l1->next = l;

                       

                    }

                    l1 = l1->next;

                }

                else {

                    l2 = l2->next;

                }

            }

            return ans;

  • 相关阅读:
    Windows Svr 2008 Ent R2 性能计数器显示不全
    SQL Server的keepalive
    C语言字符串常见操作-strcpy、strlen、strcat和strcmp实现
    计算机中数据的编码方式
    OC中的排序方法
    关于C语言内存对齐
    C语言内存管理总结-野指针
    Objective-C基础学习笔记(九)-Foundation
    Objective-C基础学习笔记(八)-内存管理-autorelease使用-property创建对象的内存管理-循环引用的内管管理
    Objective-C基础学习笔记(七)-分类-Category-类的本质-load和+initialize方法-SEL数据
  • 原文地址:https://www.cnblogs.com/wzhtql/p/10229912.html
Copyright © 2011-2022 走看看