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

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


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

代码

/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func swapPairs(head *ListNode) *ListNode {
   
    // 如果链表为空或者只有一个节点
    if head == nil || head.Next == nil {
   
        return head
    }
    // 创建虚拟头结点
    dummy := &ListNode{
   
        Next : head,
    }
    // 三个指针
    pre, cur, ne := dummy, head, head.Next
    for cur != nil {
   
        // 如果ne为空,则直接return
        if ne == nil {
   
            break
        }
        // 临时保留ne的下一个节点
        t := ne.Next
        // pre指向ne
        pre.Next = ne
        // ne指向cur
        ne.Next = cur
        // cur指向原本ne的下一个节点
        cur.Next = t

        // pre跳到cur
        pre = cur
        // cur跳到原本ne的下一个节点
        cur = t 
        // 如果cur不为空,则让ne跳到cur的下一个节点
        if cur != nil {
   
            ne = cur.Next
        }
    }
    // 返回虚拟头节点的下一个节点
    return dummy.Next
}

相关推荐

  1. leetcode24. 交换节点

    2024-01-10 02:56:01       47 阅读
  2. LeetCode [24] 交换节点

    2024-01-10 02:56:01       44 阅读
  3. Leetcode24. 交换节点

    2024-01-10 02:56:01       43 阅读
  4. LeetCode24.交换节点

    2024-01-10 02:56:01       40 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-10 02:56:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-10 02:56:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-10 02:56:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-10 02:56:01       18 阅读

热门阅读

  1. 什么是OOM error

    2024-01-10 02:56:01       41 阅读
  2. Lazada商品API接口:item_search接口中指定搜索范围

    2024-01-10 02:56:01       39 阅读
  3. VSCode安装GitHub Copilot插件方法

    2024-01-10 02:56:01       52 阅读
  4. Python高级用法:property

    2024-01-10 02:56:01       29 阅读
  5. infer。。。。

    2024-01-10 02:56:01       37 阅读
  6. 第二百五十五回

    2024-01-10 02:56:01       36 阅读
  7. 联合union

    2024-01-10 02:56:01       36 阅读
  8. Unity3D 如何实现多玩家语音聊天详解

    2024-01-10 02:56:01       42 阅读
  9. linux 使用多版本 go goenv.sh

    2024-01-10 02:56:01       39 阅读