在使用C#进行链表的奇偶排序时,可以按照以下步骤进行操作:
以下是一个示例代码:
using System;
public class ListNode
{
public int val;
public ListNode next;
public ListNode(int val = 0, ListNode next = null)
{
this.val = val;
this.next = next;
}
}
public class Solution
{
public ListNode OddEvenList(ListNode head)
{
if (head == null || head.next == null)
{
return head;
}
ListNode oddHead = head;
ListNode evenHead = head.next;
ListNode odd = oddHead;
ListNode even = evenHead;
while (even != null && even.next != null)
{
odd.next = even.next;
odd = odd.next;
even.next = odd.next;
even = even.next;
}
odd.next = evenHead;
return oddHead;
}
}
public class Program
{
public static void Main(string[] args)
{
// 创建链表 1->2->3->4->5
ListNode head = new ListNode(1);
head.next = new ListNode(2);
head.next.next = new ListNode(3);
head.next.next.next = new ListNode(4);
head.next.next.next.next = new ListNode(5);
Solution solution = new Solution();
ListNode sortedList = solution.OddEvenList(head);
// 输出排序后的链表
while (sortedList != null)
{
Console.Write(sortedList.val + " ");
sortedList = sortedList.next;
}
}
}
这段代码使用了一个OddEvenList
方法来实现链表的奇偶排序。它通过创建两个新的链表,分别存储奇数节点和偶数节点,并将它们连接起来形成一个新的链表。最后返回新链表作为结果。
这是一个基本的链表奇偶排序的实现,你可以根据实际需求进行修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云