合并两个有序链表C#

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

示例:

输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/merge-two-sorted-lists
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     public int val;
 *     public ListNode next;
 *     public ListNode(int x) { val = x; }
 * }
 */
public class Solution
    {
        public ListNode MergeTwoLists(ListNode l1, ListNode l2)//相当于一个单链表
        {
            ListNode temp = new ListNode(0);
            ListNode l3=temp;//后面不能改动temp,只能从temp.next出发/
            while (l1 != null && l2 != null)
            {
                if (l1.val <= l2.val)
                {
                    temp.next = l1;
                    temp = temp.next;
                    l1 = l1.next;
                }
                else
                {
                    temp.next = l2;
                    temp = temp.next;
                    l2 = l2.next;
                }
            }
            if (l1 == null)
                temp.next = l2;
            else if (l2 == null)
                temp.next = l1;
            return l3.next;
        }
    }

注意理解单链表中结点的意义。
在这里插入图片描述

发布了30 篇原创文章 · 获赞 4 · 访问量 901

猜你喜欢

转载自blog.csdn.net/weixin_45776347/article/details/104865219
今日推荐