交换链表中的节点

给你链表的头节点 head 和一个整数 k 。

交换 链表正数第 k 个节点和倒数第 k 个节点的值后,返回链表的头节点(链表 从 1 开始索引)。

示例 1:

输入:head = 1,2,3,4,5, k = 2

输出:1,4,3,2,5

示例 2:

输入:head = 7,9,6,6,7,8,3,0,9,5, k = 5

输出:7,9,6,6,8,7,3,0,9,5

示例 3:

输入:head = 1, k = 1

输出:1

示例 4:

输入:head = 1,2, k = 1

输出:2,1

示例 5:

输入:head = 1,2,3, k = 2

输出:1,2,3

提示:

链表中节点的数目是 n

1 <= k <= n <= 105

0 <= Node.val <= 100

python 复制代码
# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def swapNodes(self, head: Optional[ListNode], k: int) -> Optional[ListNode]:
        n,s,f = head,head,head
        recode = 1
        while n:
            if recode < k:
                s = s.next
            if recode >k :
                f = f.next

            n = n.next
            recode +=1
        f.val,s.val = s.val,f.val
        return head
        

怎么能有这么聪明的解法,一次遍历 找到两个节点

膜拜大佬

相关推荐
果丁智能3 分钟前
智慧校园一卡通深度融合方案:基于超级SIM卡的手机碰一碰智能开锁技术落地实践
数据结构·人工智能·python·科技·算法·智能家居·信息与通信
Irissgwe14 分钟前
顺序表和链表
数据结构·c++·链表·c·顺序表·线性表
小糯米60129 分钟前
C语言文件操作
c语言·开发语言·数据结构
一切皆是因缘际会40 分钟前
神经符号融合智能体
大数据·数据结构·人工智能·ai
玖玥拾43 分钟前
C/C++ 数据结构(四)链表与STL容器
c语言·数据结构·c++·链表·stl库
满怀冰雪1 小时前
第15篇-链表基础-反转链表-合并链表与快慢指针
java·算法·链表
玖玥拾1 小时前
C/C++ 数据结构(一)基础概念、线性表链表
c语言·数据结构·c++·链表
芋只因1 小时前
力扣100题解(Java版)
数据结构
暖阳华笺1 小时前
【数据结构与算法】哈希专题
数据结构·c++·算法·leetcode·哈希算法
LuminousCPP1 小时前
数据结构 - 单链表第二篇:单链表进阶操作
c语言·数据结构·笔记·链表