首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用c#在链表中进行奇偶排序

在使用C#进行链表的奇偶排序时,可以按照以下步骤进行操作:

  1. 创建一个链表对象,并向其中添加节点。链表节点可以包含一个整数值,表示节点的值。
  2. 创建两个新的链表,一个用于存储奇数节点,另一个用于存储偶数节点。
  3. 遍历原始链表,将奇数节点添加到奇数链表,偶数节点添加到偶数链表。
  4. 将偶数链表连接到奇数链表的末尾,形成一个新的链表。
  5. 返回新链表作为结果。

以下是一个示例代码:

代码语言:csharp
复制
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方法来实现链表的奇偶排序。它通过创建两个新的链表,分别存储奇数节点和偶数节点,并将它们连接起来形成一个新的链表。最后返回新链表作为结果。

这是一个基本的链表奇偶排序的实现,你可以根据实际需求进行修改和扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券