Merge Two Sorted Lists

和合并数组类似。

 ListNode *mergeList(ListNode *l1, ListNode *l2)
      {
          if (l1 == nullptr)return l2;
          if (l2 == nullptr)return l1;

          ListNode dummy(-1);
          ListNode *p = &dummy;

          for (; l1 != nullptr&&l2 != nullptr; p = p->next)
          {
              if (l1->val > l2->val)
              {
                  p->next = l2;
                  l2 = l2->next;
              }
              else
              {
                  p->next = l1;
                  l1 = l1->next;
              }
          }

          p->next = l1 != nullptr ? l1 : l2;
          return dummy.next;
      }
View Code

 对于Merge k Sorted Lists同理,可以多次调用Merge two Sorted Lists

posted @ 2016-07-12 15:40  牧马人夏峥  阅读(92)  评论(0编辑  收藏  举报