力扣刷题链表总结

ListNode list=new ListNode() 初始化一个空节点,无值,不提倡此种写法。

ListNode list=new ListNode(0) 初始化一个节点值为0的空节点,最常用最正规写法

 ListNode list=null 为空,什么都没有,一般不这么写;
合并两个有序链表

/**

 * 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) 

    {

        ListNode *p = new ListNode(0);

        ListNode*L=p;//它的作用最后的结果l指向p,这样可以获取p所接收的全部元素,而p的指针由于每次都往下移,所以每次都更新

        while(l1!=NULL&&l2!=NULL)

        {

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

            {

                p->next=l1;

                p=p->next;

                l1=l1->next;

               // return out->next;

            }

            else

            {

                p->next=l2;

                p=p->next;

                l2=l2->next;

               // return out->next;

            }

            

        }

        if(l1==NULL)

        {

            p->next = l2; 

        }

        if(l2==NULL)

        {

            p->next = l1;

        }

       return L->next; 

    }

};

发布了165 篇原创文章 · 获赞 26 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_42269817/article/details/103041351