zoukankan      html  css  js  c++  java
  • Merge Two Sorted Lists

    /**
     * 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= NULL;//头指针
            ListNode*cur= NULL;//当前操作的点
            ListNode*p =l1;
            ListNode*q =l2;
          
            while(p&&q)
            {if (head == NULL)
               {if (p->val<q->val)
                  {
                  head = cur= p;
                  p= p->next;
                  head->next = NULL;
                  }
                 
                else
                {
                  head = cur = q;
                  q= q->next;
                  head->next = NULL;
                   
                }
               }
           
            else
            {
              if (p->val<q->val)
                  {
                  cur->next= p;
                  cur= cur->next ;
                  p= p->next;
                  cur->next = NULL;
                  } 
             else
               {
                cur->next= q;
                cur= cur->next ;
                q= q->next;
                cur->next = NULL;
               }
            }
        }
           
        if(p!= NULL)
        cur->next= p;
        else if(q!= NULL)
        cur->next = q;
        return head;
        }
    };

  • 相关阅读:
    初学移动专题
    IE下a标签跳转失败
    c++中一个多态的实例
    字符串中是否有相同的字符
    求乘积最大的连续子序列
    跳跃游戏
    求一个非负整数的平方根 二分法
    罗马数 与 整数 相互转换
    二进制相加
    链表分割
  • 原文地址:https://www.cnblogs.com/gofighting/p/5036213.html
Copyright © 2011-2022 走看看