美文网首页
031-交换节点

031-交换节点

作者: Woodlouse | 来源:发表于2020-06-08 21:58 被阅读0次

描述

在单链表中,两两交换临近的节点,返回链表的头节点;

输入:

1->2->3->4->nullptr

返回:

2->1->4->3->nullptr

分析

变量

dummy : next指针指向头节点;

cur :当前要操作的节点;

prev : 当前节点的前一个节点;

next : 当前节点的下一个节点;

运行条件

next不为空

运行逻辑

//指针指向的改变
prev->next = next;
cur->next = next->next;
next->next = cur;

// 更新指针
prev = cur;
cur = cur->next;
next = cur ? nullptr : cur->next;

实现

ListNode *swapNodeInPairs00(ListNode *head)
{
    ListNode dummy(-1);
    dummy.next = head;
    
    ListNode *prev = &dummy;
    ListNode *cur = prev->next;
    ListNode *next = cur->next;
    
    while (next) {
        // 开始交换重组
        prev->next = next;
        cur->next = next->next;
        next->next = cur;
        
        prev = cur;
        cur = cur->next;
        next = cur ? cur->next : nullptr;
    }
    
    return dummy.next;
}

更简单的只交换节点值的实现

ListNode *swapNodeInPairs(ListNode *head)
{
    ListNode *cur = head;
    while (cur->next) {
        int temp = cur->val;
        cur->val = cur->next->val;
        cur->next->val = temp;
        cur = cur->next->next;
    }
    return head;
}

相关文章

  • 031-交换节点

    描述 在单链表中,两两交换临近的节点,返回链表的头节点; 输入: 1->2->3->4->nullptr 返回: ...

  • 用数组表示二叉树,并实现堆排序

    步骤:1,找最大堆(自右往左比较子节点,自下往上比较子节点和父节点)。2,交换根节点和尾部节点,并且不再比较交换下...

  • 计算机网络

    网络节点出现两条链路时,节点需要选择方向,因此需要再这些节点进行交换。数据发生交换的时候,会先从一条链路进入交换设...

  • LeetCode 24. Swap Nodes in Pairs

    题目 将链表中相邻的两个节点交换位置,注意第一个节点与第二个节点要交换位置,第三个节点与第四个节点要交换位置, 而...

  • LeetCode 24. 两两交换链表中的节点

    24. 两两交换链表中的节点 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点...

  • Leetcode 24 两两交换链表中的节点

    两两交换链表中的节点 题目 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内...

  • leetCode进阶算法题+解析(四)

    两两交换链表中的节点 题目:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部...

  • LeetCode-24 两两交换链表中的节点

    题目:24. 两两交换链表中的节点 难度:中等 分类:链表 解决方案:节点的交换 今天我们学习第24题两两交换链表...

  • 堆&红黑树

    插入一个元素--上浮 52与父亲节点比较,并交换 继续比较交换 最后52与父亲节点62比较, 比其小则不再交换,此...

  • 【Leetcode-24】链表-两两交换链表中的节点

    2020-10-13 打卡题-链表,节点交换 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是...

网友评论

      本文标题:031-交换节点

      本文链接:https://www.haomeiwen.com/subject/jaonzhtx.html