当前位置: 首页 > article >正文

Leetcode 24 Swap Nodes in Pairs

题意:给定一个list of nodes,要求交换相邻的两个节点
https://leetcode.com/problems/swap-nodes-in-pairs/description/
Input: head = [1,2,3,4]
Output: [2,1,4,3]
首先你需要思考,我要交换两个节点,对于每个节点,向前指的指针会改变,🤔后指的指针也会改变,所以我需要三个指针来解决这个问题。
比较容易错的地方是prev指针指向的位置,永远应该是每一个需要改变节点的前一个指针

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* swapPairs(ListNode* head) {
        if(!head) {
            return nullptr;
        }
        ListNode dummy = ListNode(-1);
        dummy.next = head;
        ListNode* prev = &dummy;
        while(prev->next && prev->next->next) {
            ListNode* p1 = prev->next;
            ListNode* p2 = prev->next->next;
            p1->next = p2->next;
            p2->next = p1;
            prev->next = p2;
            prev = p1;
        }
        return dummy.next;
    }
};

http://www.kler.cn/news/341001.html

相关文章:

  • STM32入门
  • 汽车车轮平衡块行业前景:预计2030年全球市场规模将达到10亿美元
  • STM32 HAL库
  • SQL进阶技巧:SQL中的正则表达式应用?
  • 浙大数据结构:08-图8 How Long Does It Take
  • P1903 [国家集训队] 数颜色 / 维护队列
  • 叉车毫米波雷达防撞技术,保护叉车作业安全
  • 图像分类-demo(Lenet),tensorflow和Alexnet
  • 深度学习基础—残差网络ResNets
  • springboot 整合 rabbitMQ(2)
  • 【SQL】深入了解 SQL 索引:数据库性能优化的利器
  • C#操作SqlServer数据库事务
  • BMS 硬件工程师面试题
  • 【unity进阶知识8】unity场景Scene的使用, 如何封装一个场景管理器
  • HeidiSQL 数据库密码如何恢复
  • [CTF夺旗赛] CTFshow Web13-14 详细过程保姆级教程~
  • 是否可以将缓存的 hashCode 方法添加到原始字符串?
  • 深度学习模型
  • LabelImag标注工具环境配置
  • 【Matlab案例】imageJ + matlab 实现物体轨迹追踪及路径彩色上色