Golang | Leetcode Golang题解之第234题回文链表

题目:

题解:

func reverseList(head *ListNode) *ListNode {
    var prev, cur *ListNode = nil, head
    for cur != nil {
        nextTmp := cur.Next
        cur.Next = prev
        prev = cur
        cur = nextTmp
    }
    return prev
}

func endOfFirstHalf(head *ListNode) *ListNode {
    fast := head
    slow := head
    for fast.Next != nil && fast.Next.Next != nil {
        fast = fast.Next.Next
        slow = slow.Next
    }
    return slow
}

func isPalindrome(head *ListNode) bool {
    if head == nil {
        return true
    }

    // 找到前半部分链表的尾节点并反转后半部分链表
    firstHalfEnd := endOfFirstHalf(head)
    secondHalfStart := reverseList(firstHalfEnd.Next)

    // 判断是否回文
    p1 := head
    p2 := secondHalfStart
    result := true
    for result && p2 != nil {
        if p1.Val != p2.Val {
            result = false
        }
        p1 = p1.Next
        p2 = p2.Next
    }

    // 还原链表并返回结果
    firstHalfEnd.Next = reverseList(secondHalfStart)
    return result
}

相关推荐

  1. 234.

    2024-07-14 10:10:02       36 阅读
  2. 234.

    2024-07-14 10:10:02       32 阅读
  3. 234.

    2024-07-14 10:10:02       31 阅读
  4. LeetCode-热100:234.

    2024-07-14 10:10:02       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-14 10:10:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-14 10:10:02       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-14 10:10:02       58 阅读
  4. Python语言-面向对象

    2024-07-14 10:10:02       69 阅读

热门阅读

  1. [NOIP2005 普及组] 采药

    2024-07-14 10:10:02       24 阅读
  2. 【Git使用】管理代码

    2024-07-14 10:10:02       21 阅读
  3. 分区和分桶的区别

    2024-07-14 10:10:02       23 阅读
  4. vue vite自动化路由 无需手动配置

    2024-07-14 10:10:02       18 阅读
  5. C#学习

    2024-07-14 10:10:02       27 阅读
  6. 华为生成树协议技术概述

    2024-07-14 10:10:02       26 阅读
  7. 如何使用Gunicorn配置SSL/TLS加密Web服务

    2024-07-14 10:10:02       35 阅读
  8. 八部金刚功-1.0.5-july 14th

    2024-07-14 10:10:02       24 阅读
  9. R 绘图 - 中文支持

    2024-07-14 10:10:02       22 阅读
  10. 不遵守全局主键配置【PGSQL】

    2024-07-14 10:10:02       19 阅读
  11. 手撕排序算法:冒泡排序

    2024-07-14 10:10:02       25 阅读
  12. 深入探究:Spring 中的消息队列实现方式

    2024-07-14 10:10:02       22 阅读