广州网站建设如何做,权威的锦州网站建设,iis7建立网站,怎么给网站做缓存leetcode 2095 删除链表的中间节点
给你一个链表的头节点 head 。删除 链表的 中间节点 #xff0c;并返回修改后的链表的头节点 head 。
长度为 n 链表的中间节点是从头数起第 ⌊n / 2⌋ 个节点#xff08;下标从 0 开始#xff09;#xff0c;其中 ⌊x⌋ 表示小于或等于…leetcode 2095 删除链表的中间节点
给你一个链表的头节点 head 。删除 链表的 中间节点 并返回修改后的链表的头节点 head 。
长度为 n 链表的中间节点是从头数起第 ⌊n / 2⌋ 个节点下标从 0 开始其中 ⌊x⌋ 表示小于或等于 x 的最大整数。
对于 n 1、2、3、4 和 5 的情况中间节点的下标分别是 0、1、1、2 和 2 。 示例 1 输入head [1,3,4,7,1,2,6]
输出[1,3,4,1,2,6]
解释
上图表示给出的链表。节点的下标分别标注在每个节点的下方。
由于 n 7 值为 7 的节点 3 是中间节点用红色标注。
返回结果为移除节点后的新链表。 示例 2 输入head [1,2,3,4]
输出[1,2,4]
解释
上图表示给出的链表。
对于 n 4 值为 3 的节点 2 是中间节点用红色标注。示例 3 输入head [2,1]
输出[2]
解释
上图表示给出的链表。
对于 n 2 值为 1 的节点 1 是中间节点用红色标注。
值为 2 的节点 0 是移除节点 1 后剩下的唯一一个节点。 快慢指针
class Solution(object):def deleteMiddle(self, head)::type head: Optional[ListNode]:rtype: Optional[ListNode]p1 p2 head ListNode(0, head)while p2.next and p2.next.next:p1, p2 p1.next, p2.next.nextp1.next p1.next.nextreturn head.next leetcode 328 奇偶链表
给定单链表的头节点 head 将所有索引为奇数的节点和索引为偶数的节点分别组合在一起然后返回重新排序的列表。
第一个节点的索引被认为是 奇数 第二个节点的索引为 偶数 以此类推。
请注意偶数组和奇数组内部的相对顺序应该与输入时保持一致。
你必须在 O(1) 的额外空间复杂度和 O(n) 的时间复杂度下解决这个问题。 示例 1: 输入: head [1,2,3,4,5]
输出: [1,3,5,2,4]创建了三个辅助指针一个纸箱当前要排序的结点一个指向前面已经排好序的尾结点一个指向已排序的奇数索引最后一个结点。
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, val0, nextNone):
# self.val val
# self.next next
class Solution(object):def oddEvenList(self, head)::type head: ListNode:rtype: ListNodeif not head or not head.next or not head.next.next: # 表中元素小于等于2 直接返回return headtail head.next # 表尾oddtail head # 奇数表尾i 3cur head.next.next # 前两个元素直接有序从无序的第3个元素开始while cur ! None:if i % 2 ! 0: # 索引奇数tail.next cur.nextcur.next oddtail.nextoddtail.next curoddtail curcur tail.nextelse:cur cur.nexttail tail.nexti 1return head leetcode 206 反转链表
给你单链表的头节点 head 请你反转链表并返回反转后的链表。 示例 1 输入head [1,2,3,4,5]
输出[5,4,3,2,1] # Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, val0, nextNone):
# self.val val
# self.next next
class Solution(object):def reverseList(self, head)::type head: ListNode:rtype: ListNodehead ListNode(0, head)rehead ListNode(0, None)cur head.next# priCur headwhile cur ! None:priCur curpriCur priCur.nextcur.next rehead.nextrehead.next curcur priCurreturn rehead.next