leetcode21

合并两个有序的链表,问题来源:https://leetcode.com/problems/merge-two-sorted-lists/

分析:本质是很简单的,归并排序中的一个小节。难点在于链表操作,容易出现失误。很久没碰c++手生的很。

  1. 链表的构造函数的声明问题
  2. struct结构的对象构建
  3. val元素,next元素的引用
  4. 关于是否有头指针的辨别

代码如下:

class Solution {
public:
    ListNode* mergeTwoLists(ListNode* ll1, ListNode* ll2) {
        ListNode* l3 = new ListNode(-1) ;
        
        
        ListNode* ll3;
        ll3 = l3;
        
        
        while(ll1 != NULL || ll2 != NULL){
            if((ll1 == NULL && ll2 != NULL) || (ll1 != NULL &&ll2 != NULL && (ll1->val > ll2->val))){
                ll3->next = new ListNode(ll2->val);
                ll2 = ll2->next;
            }else{
                ll3->next = new ListNode(ll1->val);
                ll1 = ll1->next;
            }
            ll3 = ll3->next;
        }
        
        return l3->next;
    }
};

猜你喜欢

转载自www.cnblogs.com/maggie94/p/10222291.html