写点什么

每日一题:LeetCode-24. 两两交换链表中的节点

作者:半亩房顶
  • 2024-01-11
    北京
  • 本文字数:539 字

    阅读完需:约 2 分钟

每日一题:LeetCode-24. 两两交换链表中的节点

刷题使我快乐,满脸开心.jpg


题目

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。


示例 1:



输入:head = [1,2,3,4]输出:[2,1,4,3]
复制代码


示例 2:


输入:head = []输出:[]
复制代码


示例 3:


输入:head = [1]输出:[1]
复制代码


提示:


  • 链表中节点的数目在范围 [0, 100]

  • 0 <= Node.val <= 100

思路

不明白为啥属于中等题,自己画画图就完事儿了

代码

func swapPairs(head *ListNode) *ListNode {    if head == nil || head.Next == nil {        return head    }
veryHead := &ListNode{Next: head} pre := veryHead first := head second := head for first != nil && first.Next != nil { // 移动 second,开始交换 second = first.Next // 交换,串联上前后节点 first.Next = second.Next pre.Next = second second.Next = first // 跟随移动,准备下一次交换 pre = first first = first.Next } return veryHead.Next}
复制代码




欢迎关注公众号交流更多题目~


发布于: 刚刚阅读数: 4
用户头像

半亩房顶

关注

人生那么长,能写多少bug? 2018-11-16 加入

我希望,自己永远是自己。我希望,远离bug。

评论

发布
暂无评论
每日一题:LeetCode-24. 两两交换链表中的节点_Go_半亩房顶_InfoQ写作社区