字节跳动高频题——排序奇升偶降链表

字节跳动高频题——排序奇升偶降链表

面经描述

链表,奇数位置按序增长,偶数位置按序递减,如何能实现链表从小到大?(2020.10 字节跳动-后端)[2]
奇偶生序倒序链表的重新排序组合,例如:18365472(2020.08 字节跳动-后端)[3]
1->4->3->2->5 给定一个链表奇数部分递增,偶数部分递减,要求在O(n)时间复杂度内将链表变成递增,5分钟左右(2020.07 字节跳动-测试开发)[4]
奇数位升序偶数位降序的链表要求时间O(n)空间O(1)的排序?(2020.07 字节跳动-后端)[5]

题目描述

给定一个奇数位升序,偶数位降序的链表,将其重新排序。

输入: 1->8->3->6->5->4->7->2->NULL
输出: 1->2->3->4->5->6->7->8->NULL

思路

https://mp.weixin.qq.com/s/377FfqvpY8NwMInhpoDgsw
在该篇文中中
三个题的结合

1.合并两个有序连接表
2 奇偶链表拆分
3 反转链表

代码 C++实现

// ConsoleApplication2.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <string.h>
#include<iostream>
using namespace std;

struct ListNode {
   
	int val;
	ListNode *next;
	ListNode(int x) : val(x), next(NULL) {
   }
	
};


ListNode*reverse(ListNode*head)
{
   
	if (head == NULL) return NULL;
	ListNode*cur = head;
	ListNode*left = NULL;
	ListNode*right = NULL;
	ListNode*preHead = NULL;
	while (cur 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值