塑胶原料东莞网站建设技术支持,ui设计师的工作内容是什么,牛商网怎么样,seo整站优化解决方案24. 两两交换链表中的节点 给你一个链表#xff0c;两两交换其中相邻的节点#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题#xff08;即#xff0c;只能进行节点交换#xff09;。 示例 1#xff1a;输入#xff1a;head [1,2,3,4…24. 两两交换链表中的节点给你一个链表两两交换其中相邻的节点并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题即只能进行节点交换。示例 1输入head [1,2,3,4]输出[2,1,4,3]示例 2输入head []输出[]示例 3输入head [1]输出[1]提示链表中节点的数目在范围 [0, 100] 内0 Node.val 100实现代码:# Definitionforsingly-linked list.#classListNode(object):# def__init__(self,val0,nextNone):# self.valval # self.nextnextclassSolution(object):defswapPairs(self,head)::type head:Optional[ListNode]:rtype:Optional[ListNode] dummyheadListNode(0,head)onedummyhead twoheadwhiletwo is not None:threetwo.nextifthree is not None:two.nextthree.next one.nextthree three.nexttwo onetwo twotwo.nextreturndummyhead.next核心思路1.用虚拟头节点统一头节点和普通节点的交换逻辑避免边界处理2.用one(two(three))的指针分组按「先连后继、再换前驱、最后闭环」的顺序交换节点保证链表不中断3.循环推进指针时无论是否交换都更新one和two确保循环能终止且所有节点对都被处理。