首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
排序奇升偶降链表
[编程题]排序奇升偶降链表
热度指数:2701
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 256M,其他语言512M
算法知识视频讲解
给定一个奇数位升序,偶数位降序的链表,返回对其排序后的链表。
题面解释:例如链表 1->3->2->2->3->1 是奇数位升序偶数位降序的链表,而 1->3->2->2->3->2 则不符合题目要求。
数据范围:链表中元素个数满足
,链表中的元素大小满足
示例1
输入
{1,3,2,2,3,1}
输出
{1,1,2,2,3,3}
示例2
输入
{1,2,2}
输出
{1,2,2}
说明:本题目包含复杂数据结构ListNode,
点此查看相关信息
马上挑战
算法知识视频讲解
提交运行
算法知识视频讲解
添加笔记
求解答(0)
邀请回答
收藏(38)
分享
纠错
提交结果有问题?
24个回答
19篇题解
开通博客
小小小明哥
发表于 2022-01-17 07:30:44
/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : val(x), next(nullptr) {} * }; */ class Solution { public: /*
展开全文
ClivenZ
发表于 2021-12-28 23:50:33
面试遇到这个题,要求只能通过链表操作来完成..... 两个0%,很服气 分两步: 1、通过原来链表的性质,区分成两个子链表,偶数位是降序的,可以在分子链表的时候排序(其实就是前插就行了) 2、对两个有序的链表进行合并... * struct ListNode { * int val; * st
展开全文
太阳hxy
发表于 2023-07-15 15:36:41
排序奇升偶降链表 思路: 1.先根据奇数位和偶数位的节点拆分为两个表 2.再将第二个表进行反转 3.最后将第一个表和第二表进行合并 代码: import java.util.*; /* * public class ListNode { * int val; * ListN
展开全文
BUPT_幽若风
发表于 2021-12-01 01:13:37
第一步将链表存到vector里边 ```while (p) { res.push_back( p->val);p =p.next; 2、对vector进行排序 sort 3、将vector放入链表中 ``` js ListNode *p1 = new ListNode(0); Li
展开全文
River_68
发表于 2022-04-04 21:02:11
首先将链表分为奇偶两个链表 偶链表进行反转 再将奇偶两个升序数组升序合并 package main import . "nc_tools" /* * type ListNode struct{ * Val int * Next *ListNode * } */ /** * 代
展开全文
觉醒火龙果很想五点下课
发表于 2025-05-12 16:04:26
class Solution { public: ListNode* sortLinkedList(ListNode* head) { ListNode dummy(0); ListNode *noddList = &dummy; L
展开全文
mshentai
发表于 2022-01-12 09:53:01
对于这题,可以先遍历一次,用队列保存递增的奇数位指针,用栈保存递减的偶数位指针。 这两个线性表输出的将都是递增的序列。那么逐个比较两个表的元素,然后小的先加入新链表,即可得出答案。 例如: 1->10->2->9->8->3->9->1
展开全文
blazeout
发表于 2022-03-09 10:54:12
1. 首先分割奇偶链表, 变成两个链表 (这一步不会的先去做LeetCode328题奇偶链表) 2. 反转升序链表 3. 合并两个链表即可 package main import . "nc_tools" /* * type ListNode struct{ * Val int *
展开全文
newcoderk
发表于 2022-06-18 12:03:06
step1. 先把链表拆分成两个,一个奇数节点的,一个偶数节点的 step2. 翻转偶数链表 step3. 合并两个链表 class Solution { public: ListNode *sortLinkedList(ListNode *head) { if (head
展开全文
TonyMMM
发表于 2022-07-14 20:44:17
class Solution: def sortLinkedList(self , head: ListNode) -> ListNode:  
展开全文
问题信息
链表
难度:
24条回答
38收藏
4137浏览
热门推荐
通过挑战的用户
查看代码
Monologue丶
2023-02-19 18:45:07
给小菜鸡一个o...
2023-02-19 15:44:42
阿sir虫
2023-01-05 22:30:20
许愿快手啊啊啊
2022-12-03 19:33:46
EchOvO๑
2022-11-02 16:11:48
相关试题
如图 1 表示使用快表(页表)的虚...
编程基础
评论
(1)
对于我们来说,谁是好的顾客?
销售常识
评论
(1)
小红书用户在不同使用场景下,对内容...
需求分析
评论
(1)
MySQL中执行 SELECT I...
SQL
评论
(1)
订单表order_table全部记...
查找
数据库
数据分析
SQL
评论
(2)
排序奇升偶降链表
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * public ListNode(int val) { * this.val = val; * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @return ListNode类 */ public ListNode sortLinkedList (ListNode head) { // write code here } }
/** * struct ListNode { * int val; * struct ListNode *next; * ListNode(int x) : val(x), next(nullptr) {} * }; */ class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @return ListNode类 */ ListNode* sortLinkedList(ListNode* head) { // write code here } };
#coding:utf-8 # class ListNode: # def __init__(self, x): # self.val = x # self.next = None # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param head ListNode类 # @return ListNode类 # class Solution: def sortLinkedList(self , head ): # write code here
using System; using System.Collections.Generic; /* public class ListNode { public int val; public ListNode next; public ListNode (int x) { val = x; } } */ class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @return ListNode类 */ public ListNode sortLinkedList (ListNode head) { // write code here } }
/* * function ListNode(x){ * this.val = x; * this.next = null; * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @return ListNode类 */ function sortLinkedList( head ) { // write code here } module.exports = { sortLinkedList : sortLinkedList };
val = $x; } }*/ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @return ListNode类 */ function sortLinkedList( $head ) { // write code here }
# class ListNode: # def __init__(self, x): # self.val = x # self.next = None # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param head ListNode类 # @return ListNode类 # class Solution: def sortLinkedList(self , head: ListNode) -> ListNode: # write code here
package main import "fmt" import . "nc_tools" /* * type ListNode struct{ * Val int * Next *ListNode * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @return ListNode类 */ func sortLinkedList( head *ListNode ) *ListNode { // write code here }
/** * struct ListNode { * int val; * struct ListNode *next; * }; */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @return ListNode类 */ struct ListNode* sortLinkedList(struct ListNode* head ) { // write code here }
# class ListNode # attr_accessor :val, :next # # def initialize(val = 0, _next = nil) # @val, @next = val, _next # end # end # # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param head ListNode类 # @return ListNode类 # class Solution def sortLinkedList(head) # write code here end end
/** * class ListNode(var val: Int) { * var next: ListNode = null * } */ object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @return ListNode类 */ def sortLinkedList(head: ListNode): ListNode = { // write code here } }
/** * class ListNode(var `val`: Int) { * var next: ListNode? = null * } */ object Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @return ListNode类 */ fun sortLinkedList(head: ListNode?): ListNode? { // write code here } }
import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * public ListNode(int val) { * this.val = val; * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @return ListNode类 */ public ListNode sortLinkedList (ListNode head) { // write code here } }
/*class ListNode { * val: number * next: ListNode | null * constructor(val?: number, next?: ListNode | null) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null : next) * } * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @return ListNode类 */ export function sortLinkedList(head: ListNode): ListNode { // write code here }
/** * public class ListNode { * public var val: Int * public var next: ListNode? * public init(_ val: Int = 0, _ next: ListNode? = nil) { * self.val = val * self.next = next * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @return ListNode类 */ func sortLinkedList ( _ head: ListNode?) -> ListNode? { // write code here } }
/** * #[derive(PartialEq, Eq, Debug, Clone)] * pub struct ListNode { * pub val: i32, * pub next: Option
> * } * * impl ListNode { * #[inline] * fn new(val: i32) -> Self { * ListNode { * val: val, * next: None, * } * } * } */ struct Solution{ } impl Solution { fn new() -> Self { Solution{} } /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @return ListNode类 */ pub fn sortLinkedList(&self, head: Option
>) -> Option
> { // write code here } }
{1,3,2,2,3,1}
{1,1,2,2,3,3}
{1,2,2}
{1,2,2}