初级
回文链表
未完成
初级参考
完整示例代码供参考,建议自己理解后重新输入
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def solve():
def isPalindrome(head):
if not head or not head.next:
return True
slow = fast = head
while fast.next and fast.next.next:
slow = slow.next
fast = fast.next.next
prev = None
curr = slow.next
while curr:
next_temp = curr.next
curr.next = prev
prev = curr
curr = next_temp
p1, p2 = head, prev
while p2:
if p1.val != p2.val:
return False
p1 = p1.next
p2 = p2.next
return True
head = ListNode(1, ListNode(2, ListNode(2, ListNode(1))))
print(isPalindrome(head))
示例
输入
solve()
期望输出
True
👑
升级 VIP
解锁全部题目,畅通无阻地学习
- ✓ 解锁全部训练包所有题目
- ✓ 查看完整参考代码和提示
- ✓ 浏览器内直接运行 Python 代码
- ✓ 自动批改 + 进度追踪
30天
¥18
1年
¥99
2年
¥158
3年
¥199