Leetcode--24. 两两交换链表中的结点
发布日期:2021-04-30 21:04:17 浏览次数:87 分类:精选文章

本文共 805 字,大约阅读时间需要 2 分钟。

为了交换链表中相邻的节点,我们可以使用以下方法。具体步骤如下:

  • 初始化两个指针,pq,分别指向链表的头节点和下一个节点。
  • 在循环中,检查 q 是否为 null 或者 q 的下一个节点为 null。如果满足,退出循环。
  • 在每次循环中:a. 记录 p 的下一个节点 temp。b. 更新 p 的下一个节点为 q 的下一个节点。c. 更新 q 的下一个节点为 p。d. 更新 pqqtemp。e. 更新 t(当前处理的节点)的下一个节点为 p。f. 将 t 移动到 q 的下一个节点,继续处理下一个相邻节点。
  • 以下是用Java实现的完整代码:

    public class Solution {    public ListNode swapPairs(ListNode head) {        if (head == null || head.next == null) {            return head;        }        ListNode p = head;        ListNode q = head.next;        while (q != null && q.next != null) {            // 存储p的下一个节点            ListNode temp = p.next;            // 交换p和q的位置            p.next = q.next;            q.next = p;            // 更新p和q的位置            p = q;            q = temp;        }        return head;    }}

    这个代码通过交替更新 pq 的位置,逐一交换每对相邻的节点,并确保链表的正确性。

    上一篇:蓝桥杯算法练习笔记(5)__常用的STL
    下一篇:idea修改git账号及密码的方法

    发表评论

    最新留言

    网站不错 人气很旺了 加油
    [***.192.178.218]2026年06月04日 19时14分49秒