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;

  • 相关阅读:
    Ackerman 函数奇怪的函数
    HDU2871 Memory Control 线段树区间合并
    HDU3667 Hotel 线段树 经典空间合并
    图论
    HDU3016 Man Down 线段树
    HDU1878 欧拉回路 判定是否存在欧拉回路
    从今开始
    如何打开注册表编辑器
    ASP.NET中TextBox控件设置ReadOnly="true"后台取不到值
    学习笔记(2011年5月到9月)
  • 原文地址:https://www.cnblogs.com/wzhtql/p/10229912.html
Copyright © 2011-2022 走看看