题目内容
代码实现
/**
* 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)
{
//读取最小的节点作为根节点
var head = ReadMinNode(ref l1, ref l2);
//最后一个节点
var node = head;
while (node != null)
{
//循环读取最小节点赋值到最后一个节点的next节点
node.next = ReadMinNode(ref l1, ref l2);
//赋值next节点为最后一个节点
node = node.next;
}
return head;
}
/// <summary>
/// 读取最小的节点
/// </summary>
private ListNode ReadMinNode(ref ListNode l1, ref ListNode l2)
{
ListNode ret;
if (l1 == null)
{
ret = l2;
l2 = l2?.next;
}
else if (l2 == null)
{
ret = l1;
l1 = l1?.next;
}
else if (l1.val < l2.val)
{
ret = l1;
l1 = l1?.next;
}
else
{
ret = l2;
l2 = l2?.next;
}
return ret;
}
}
来源:CSDN
作者:NewAI256
链接:https://blog.csdn.net/weixin_43251547/article/details/103794596