0%

题目描述

给定单链表的头节点head,将所有索引为奇数的节点和索引为偶数的节点分别组合在一起,然后返回重新排序的列表。

第一个节点的索引被认为是 奇数 , 第二个节点的索引为 偶数,以此类推。

请注意,偶数组和奇数组内部的相对顺序应该与输入时保持一致。

你必须在 O(1) 的额外空间复杂度和O(n)的时间复杂度下解决这个问题。

示例1

1
2
输入: head = [1,2,3,4,5]
输出: [1,3,5,2,4]

示例2

1
2
输入: head = [2,1,3,5,6,4,7]
输出: [2,3,6,7,1,5,4]

提示:

  • n == 链表中的节点数
  • 0 <= n <= 104
  • -106 <= Node.val <= 106
阅读全文 »

题目描述

给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false

示例1

1
2
输入:head = [1,2,2,1]
输出:true

示例2

1
2
输入:head = [1,2]
输出:false
阅读全文 »

题目描述

给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表

示例

1
2
输入:head = [4,2,1,3]
输出:[1,2,3,4]
1
2
输入:head = [-1,5,3,4,0]
输出:[-1,0,3,4,5]
1
2
输入:head = []
输出:[]
阅读全文 »

题目描述

给你两个单链表的头节点 headA headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null

图示两个链表在节点 c1 开始相交:

题目数据 保证 整个链式结构中不存在环。

注意,函数返回结果后,链表必须 保持其原始结构

示例1

1
2
3
输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3
输出:Reference of the node with value = 8
输入解释:相交节点的值为 8 (注意,如果两个列表相交则不能为 0从各自的表头开始算起,链表 A 为 [4,1,8,4,5],链表 B 为 [5,0,1,8,4,5]A 中,相交节点前有 2 个节点;在 B 中,相交节点前有 3 个节点
阅读全文 »

题目描述

给定两个 非空链表 l1l2 来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。

可以假设除了数字 0 之外,这两个数字都不会以零开头。

示例1

1
2
输入:l1 = [7,2,4,3], l2 = [5,6,4]
输出:[7,8,0,7]

示例2

1
2
输入:l1 = [2,4,3], l2 = [5,6,4]
输出:[8,0,7]
阅读全文 »

题目描述

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。

请你将两个数相加,并以相同形式返回一个表示和的链表。

你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

示例

1
2
3
输入:l1 = [2,4,3], l2 = [5,6,4]
输出:[7,0,8]
解释:342 + 465 = 807.
1
2
输入:l1 = [0], l2 = [0]
输出:[0]
1
2
输入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]
输出:[8,9,9,9,0,0,0,1]
阅读全文 »

题目描述

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。

示例1

1
2
输入:head = [1,2,3,4]
输出:[2,1,4,3]

示例2

1
2
输入:head = []
输出:[]
阅读全文 »

题目描述

给定一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。

示例

1
2
输入:head = [1,2,3,4,5], n = 2
输出:[1,2,3,5]
1
2
输入:head = [1], n = 1
输出:[]
1
2
输入:head = [1,2], n = 1
输出:[1]

提示:

  • 链表中结点的数目为 sz
  • 1 <= sz <= 30
  • 0 <= Node.val <= 100
  • 1 <= n <= sz
阅读全文 »

题目描述

输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。

例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。

示例

1
2
3
给定一个链表: 1->2->3->4->5, 和 k = 2.

返回链表 4->5.
阅读全文 »