📌  相关文章
📜  用于将最后一个元素移动到给定链接列表前面的 C# 程序(1)

📅  最后修改于: 2023-12-03 15:27:10.910000             🧑  作者: Mango

将最后一个元素移动到给定链接列表前面的 C# 程序

这个程序将实现一个简单的功能:将链表的最后一个元素移动到链表的第一个位置。

实现思路
  1. 遍历链表,找到倒数第二个元素。
  2. 将最后一个元素保存到一个临时变量中。
  3. 将倒数第二个元素的 next 指针设为 null。
  4. 将临时变量的 next 指针设为链表的头结点。
  5. 将链表的头结点设为临时变量。
程序代码
public void MoveLastToFirst(ListNode head)
{
    if (head == null || head.next == null)
    {
        return;
    }

    ListNode secondLast = head;
    while (secondLast.next.next != null)
    {
        secondLast = secondLast.next;
    }

    ListNode last = secondLast.next;
    secondLast.next = null;
    last.next = head;
    head = last;
}
代码说明

这是一个 C# 的函数,其输入参数为链表的头结点。函数的作用是将链表的最后一个元素移动到链表的第一个位置。在实现中,我们首先判断链表是否为空或者只包含一个元素。

接着,我们遍历链表,找到倒数第二个元素。这个操作可以使用一个 while 循环,每次循环迭代到下一个元素,直到找到倒数第二个元素。

然后,我们将链表的最后一个元素保存到一个临时变量 last 中,并将倒数第二个元素的 next 指针设为 null,即断开链表的最后一个元素与倒数第二个元素的链接。

接下来,我们将临时变量 last 的 next 指针设为链表的头结点,将链表的头结点设为临时变量 last。这样,链表的最后一个元素就变成了链表的第一个元素。

结论

通过这个程序的实现,我们可以看到在链表的操作中,遍历链表是很常见的操作,同时也可以看到,对于一个相对复杂的操作,只要我们将其分解成若干个简单步骤,就可以很容易地实现。