NB1 删除链表峰值
描述
农场主人有一群牛,他给每只牛都打了一个编号,编号由整数表示。这些牛按照编号的大小形成了一个链表。现在农场主人想删除链表中比前后结点值都大的牛的编号,你能帮他设计一个算法来实现这个功能吗?注意,只考虑删除前,首尾的牛的编号不删除。
示例1
输入:
{1,3,2,4,5}
返回值:
{1,2,4,5}
示例2
输入:
{5,4,3,2,1}
返回值:
{5,4,3,2,1}
备注:
链表长度[0, 10000]
0 < Node.val <= 10000
NB2 牛群排列去重
描述
农场里有一群牛,每头牛都有一个独特的编号,编号由一个整数表示,整数范围是[0, 200]。牛群中的牛用单链表表示,链表已经按照非降序排列。
因为一些事故,导致一头牛可能多次出现在链表中。给你一个链表的头 head,删除链表中所有重复的编号,只留下所有牛的不重复编号。返回已排序的链表。
示例1
输入:
{1,2,2,3,3,4,5,5}
返回值:
{1,2,3,4,5}
备注:
链表中节点数目在范围 [0, 1000] 内
0 <= Node.val <= 200
NB3 调整牛群顺序
描述
农场里有一群牛,每头牛都有一个编号,编号由一个整数表示,整数范围是[0, 100]。牛群中的牛用单链表表示。
现在,农场主想要调整牛群的顺序。给你一个链表,将链表中的倒数第 n 个结点移到链表的末尾,并且返回调整后的链表的头结点。
示例1
输入:
{1,2,3,4,5},2
返回值:
{1,2,3,5,4}
备注:
链表中结点的数目为 sz
1 <= sz <= 30
0 <= Node.val <= 100
1 <= n <= sz
NB4 牛群的重新分组
描述
农场里有一群牛,每头牛都有一个编号,编号由一个整数表示,整数范围是[0, 1000]。牛群中的牛用单链表表示。
现在,农场主想要重新分组牛群。给定一个单链表的头指针 head 和一个整数 k,每 k 个节点一组进行翻转,请你返回修改后的牛群链表。
k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。
你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。
示例1
输入:
{1,2,3,4,5},2
返回值:
{2,1,4,3,5}
示例2
输入:
{1,2,3,4,5},3
返回值:
{3,2,1,4,5}
备注:
链表中的节点数目为 n
1 <= k <= n <= 5000
0 <= Node.val <= 10000
NB5 牛群的重新排列
描述
农场里有一群牛,每头牛都有一个编号,编号由一个整数表示,整数范围是[-500, 500]。牛群中的牛用单链表表示。
现在,农场主想要改变牛群的排列顺序。给定一个单链表的头指针 head 和两个整数 left 和 right,其中 left <= right。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的牛群链表。
示例1
输入:
{1,2,3,4,5},2,4
返回值:
{1,4,3,2,5}
备注:
链表中节点数目为 n
1 <= n <= 1000
-500 <= Node.val <= 500
1 <= left <= right <= n
NB6 合并两群能量值
描述
农场里有两群牛,每群牛都有一定的能量值。能量值由一个整数表示,整数范围是[-100, 100]。每群牛的能量值已经按照非递增顺序排列,并存储在链表中。
现在,你需要将这两群牛的能量值合并为一个新的非递增链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例1
输入:
{4, 2, 1},{4, 3, 1}
返回值:
{4,4,3,2,1,1}
示例2
输入:
{},{0}
返回值:
{0}
备注:
两个链表的节点数目范围是 [0, 50]
-100 <= Node.val <= 100
l1 和 l2 均按非递增顺序排列
NB7 牛群的能量值
描述
农场里有两群牛,每群牛都有一定的能量值。能量值由一个非负整数表示,且每头牛的能量值只有一位数字。能量值按照逆序的方式存储在链表中,即链表的第一个节点表示个位,第二个节点表示十位,以此类推。
现在,你需要将这两群牛的能量值相加,然后以相同的逆序形式返回表示和的链表。
注意:除了数字0之外,这两个数都不会以0开头。
示例1
输入:
{9, 8, 7, 6, 5},{ 1, 1, 1, 1, 1}
返回值:
{0,0,9,7,6}
说明:
56789+11111=67900
备注:
每个链表中的节点数在范围 [1, 500] 内
0 <= Node.val <= 9
NB8 牛牛队列成环
描述
农场里有一群牛,它们被组织成一个链表形式的队列。每头牛都有一个编号(每只牛编号唯一),编号范围是[-105, 105]。每头牛都有一个指针,指向它后面的一头牛。但是,有一些顽皮的牛可能会指向它们前面的某一头牛,从而形成一个环。
现在,给你一个链表的头节点 head,判断这个牛队列中是否有环。
示例1
输入:
{3,2,0,-4,2,0,-4,2,0,-4,2,0,-4,2,0,-4,2,0,-4}
返回值:
true
NB9 牛群分隔
描述
农场里有一群牛,每头牛都有一个编号,编号由一个整数表示,整数范围是[0, 100],同时也表示牛的体重级别。牛群中的牛用单链表表示。
现在,农场主想要调整牛群的顺序,使体重较大的牛在一边,体重较小的牛在一边。给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有小于 x 的节点都出现在大于或等于 x 的节点之前。
你应当保留两个分区中每个节点的初始相对位置。
示例1
输入:
{1,2,3,4,5,6,7,8,9},5
返回值:
{1,2,3,4,5,6,7,8,9}
示例2
输入:
{4,3,2,5,2},3
返回值:
{2,2,4,3,5}
备注:
链表中节点的数目在范围 [0, 200] 内
0 <= Node.val <= 100
0 <= x <= 200
NB10 牛群旋转
描述
农场里有一群牛,每头牛都有一个编号,编号由一个整数表示,整数范围是[-100, 100]。牛群中的牛用单链表表示。
现在,农场主想要调整牛群的顺序。给你一个链表的头节点 head ,将链表每头牛向右移动 k 个位置。
示例1
输入:
{1,2,3,4,5,6,7,8,9},3
返回值:
{7,8,9,1,2,3,4,5,6}
示例2
输入:
{1,2,3},4
返回值:
{3,1,2}
备注:
链表中节点的数目在范围 [0, 500] 内
-100 <= Node.val <= 100
0 <= k <= 2 * 10^9
NB11 牛群的合并
描述
农场主人有多个牛群,每个牛群中的牛都按照编号升序排列。现在农场主人想把所有牛群合并成一个大牛群,同时要求合并后的大牛群中的牛依然按照编号升序排列。请你编写一个程序,实现这个功能。
示例1
输入:
[{2,4,5},{1,3,4},{2,8}]
返回值:
{1,2,2,3,4,4,5,8}
备注:
k == lists.length
0 <= k <= 10^4
0 <= lists[i].length <= 1000
0 <= lists[i][j] <= 5000
lists[i] 按 升序 排列
lists[i].length 的总和不超过 10000
NB12 牛群的身高排序
描述
农场主人记录了一群牛的身高,并将它们按照链表的形式存储。链表的头结点为 head,请你将这些身高数据按升序排列,并返回排序后的链表。
示例1
输入:
{4,2,1,3}
返回值:
{1,2,3,4}
示例2
输入:
{5, 0, 3, 4}
返回值:
{0,3,4,5}
备注:
链表中节点的数目在范围 [0, 5000] 内
0 <= Node.val <= 10000
NB13 牛的品种排序IV
描述
在一个牧场中,有n头牛,牛的品种分为黑牛和白牛,用0和1分别表示。现在需要对牛群进行排序,使得相同品种的牛相邻,并按照黑牛和白牛的顺序排列。这些牛是按照链表的形式存储的。
请你在不使用库内置的sort函数的情况下解决这个问题。
示例1
输入:
{1,0,1,0,1,0}
返回值:
{0,0,0,1,1,1}
示例2
输入:
{1,0,0}
返回值:
{0,0,1}
备注:
n == cows.length
1 <= n <= 3000
Node.val 为 0 或 1
NB14 牛群编号的回文顺序
描述
农场里有一些牛,每头牛都有一个编号(0-9)。这些牛按照一定的顺序站立,我们可以把这个顺序看作是一个单链表,牛的编号就是链表的节点。现在农场主想知道,这些牛的编号顺序是否是回文的。如果是,返回 true ;否则,返回 false 。
示例1
输入:
{1,2,3,2,1}
返回值:
true
示例2
输入:
{1,3,4}
返回值:
false
备注:
链表中节点数目为n
1 <= n <= 10^5
0 <= Node.val <= 9
NB15 牛群编号的回文顺序II
描述
农场里有一些牛,每头牛都有一个编号(0-9)。这些牛按照一定的顺序站立,我们可以把这个顺序看作是一个单链表,牛的编号就是链表的节点。现在农场主想知道,这些牛的编号顺序是否是回文的。如果是,则返回空链表;如果不是,返回最大的连续回文子链表的头节点(保证唯一)。
示例1
输入:
{1,2,3,2,1,4,5,6,7,8,9,0}
返回值:
{1,2,3,2,1}
示例2
输入:
{1,1,2,3,4,5,6,7,8,9,0}
返回值:
{1,1}
备注:
链表中节点数目n
1 <= n <= 100
0 <= Node.val <= 9
评论