Reorder List

Reorder List 链表首尾交叉排列@LeetCode 思路就是: 1 用快慢指针找到中间节点 2 翻转中间节点后一个元素到最后一个元素区间的所有元素 3 断开前半段和翻转后的后半段元素 4 把前半段和翻转后的后半段元素以交叉的方式合并起来 5 特殊处理输入为空,只有一个元素和只有两个元素的corner case,就是多加几个if...return 感想:可以看出翻转链表实在是非常重要,是做很多题目的基础。还有merge的思想也很重 阅读详情

题意如下:

Given a singly linked list L: L0→L1→…→Ln-1→Ln,
reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→…

You must do this in-place without altering the nodes' values.

For example,
Given {1,2,3,4}, reorder it to {1,4,2,3}.

开始想,直接操作链表,功能是实现了,但是TLE了,想起前几天做的二路归并,把一个单链表拆成了两个,这里也可以,把后一半链表(不过此处应该是后一半小于等于前一半)切下来之后反序,再接上~实现非常的简单,上代码:

public static ListNode divide(ListNode head){
		ListNode start = head;
		ListNode middle = null;
		ListNode p = head;
		
		if(head.next != null && head.next.next == null){
			ListNode t = head.next;
			head.next = null;
			return t;
		}
		
		while(p != null && p.next != null)
		{
			p = p.next.next;
			middle = start;
			start = start.next;
		}
		ListNode r = start.next;
		start.next = null;
		return r;
		
	}
	public static void ReorderList(ListNode head) {
		if( head == null || head.next == null ){
			return;
		}
		ListNode reverse = divide(head);
		ListNode fst = reverse;
		ListNode sec = reverse.next;
		fst.next = null;
		while(sec != null)
		{
			ListNode temp = sec.next;
			sec.next = fst;
			fst = sec;
			sec = temp;
		}
		reverse = fst;
		ListNode list1 = head;
		ListNode list2 = reverse;
		while(list2 != null && list1 != null)
		{
			ListNode temp1 = list1.next;
			ListNode temp2 = list2.next;
			list1.next = list2;
			list2.next = temp1;
			list1 = temp1;
			list2 = temp2;
		}
    }
好多的DUE最近,期末临近,不知道怎么调配时间了,崩溃ing。明天继续。

黑猫带你学eMMC协议第29篇:eMMC设备锁详解(CMD42) 通过cmd42命令,可以给emmc设置密码,并且锁定emmc。这时候就不能对emmc的user分区进行读写数据访问了。设备锁在V4.3版本后的emmc里面,就只能保护user area分区,因此,被锁定的emmc,依旧可以正常访问BOOT\RPMB\GPP分区。emmc内部有128 bit PWD寄存器,用来存放密码,以及有8bit PWD_LEN寄存器,用来密码长度。这两个寄存器非易失性,掉电也不会丢失。 阅读详情

相关推荐

脑影像分析入门:如何用一般线性模型(GLM)处理fMRI数据?

本文为神经影像研究入门者详细解析了如何运用一般线性模型(GLM)处理fMRI数据。文章从GLM的核心原理出发,逐步拆解了从实验设计、构建稳健设计矩阵、模型估计与统计推断,到高阶分析及多重比较校正的全流程,并指出了常见陷阱与结果解读要点,是掌握fMRI数据分析基础的关键指南。

weixin_29091445的博客 400

[NeetCode 150] Reorder Linked List

Reorder linked list

ShadyPi的IT笔记 381

MacOS Intel芯片实战:Docker Compose一键部署Dify全流程解析

本文详细解析了在搭载Intel芯片的MacOS系统上,使用Docker Compose一键部署开源LLM应用开发平台Dify的全流程。内容涵盖环境准备、Docker配置与镜像加速、代码拉取与配置初始化、服务启动与问题排查,以及访问验证与初步探索,旨在帮助开发者快速在本地搭建私有化AI应用开发环境。

ik678901234的博客 619

LeetCode Reorder List

将单向链表L0→L1→…→Ln-1→Ln转化为L0→Ln→L1→Ln-1→L2→Ln-2→…的形式,也就是从头部取一个节点,从尾部取一个节点,直到将原链表转化成新的链表。

DRFish 2199

C语言 函数

一、什么是函数 二、函数的相关语法 三、函数编码规范

m0_57105760的博客 1890

USB HID虚拟电池:Windows零驱动电源状态模拟方案

虚拟电池是一种在硬件测试与功耗分析中替代真实电池、实现可控电源状态注入的关键技术。其核心原理是通过标准USB HID协议(特别是UPS设备类)向操作系统上报可编程的AC/DC状态、剩余电量、容量参数等,绕过内核驱动限制,达成毫秒级响应与跨Windows版本兼容。该技术显著提升SoC能效验证、电池健康度校准及低电量行为触发等场景的可重复性与精度。本文基于CH554微控制器实现符合HID UPS规范的物理层虚拟电池设备,支持零驱动安装、USB原生识别与实时参数调控,适用于笔记本平台功耗建模、电源管理策略验证及自

weixin_35755188的博客 354

*143. Reorder List [Medium] 链表

143. Reorder List 143. Reorder List reverse怎么总写错???!!! # Definition for singly-linked list. # class ListNode(object): # def __init__(self, x): # self.val = x #...

qq_35319215的博客 99

RK3588-NANOPC-T6移植ubuntu+xenomai内核

更具网址下载相应的内核。导入到开发板并执行内核。

qq_42007446的博客 573

Leetcode 143 Reorder List

Leetcode 143 Reorder List 题目:Given a singly linked list L: L0→L1→…→Ln-1→Ln, reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→… 原题链接 /** * Definition for singly-linked list. * struct ListNode { * int val; ...

UPUP&TOPTOP 182

SAP接口错误查询日志

随着数字经济的迅速发展,企业数字化转型不在只追求“业财一体化”,而是在业务端也想要进行更为精细化的管理,所以很多企业在SAP ERP的基础上,集成更多垂直领域更精细的外围系统,比如销售CRM系统,采购SRM系统,生产MES系统等等,琳琅满目的产品,那对SAP实施来说,系统集成过程中,接口的一些报错查询能力必不可少,今天我们就介绍一下,SAP和CRM系统集成中接口常见的报错。

weixin_43657667的博客 2047

在 ABAP 平台配置 OAuth 2.0 Client(OA2C_CONFIG):一份可落地的全景实践

本文详细介绍了在ABAP平台中配置OAuth 2.0客户端的完整流程。重点讲解了四种授权类型(Client Credentials、Authorization Code、SAML 2.0 Bearer Assertion、Resource Owner Password Credentials)的适用场景和配置要点,以及客户端认证的三种方式(Client Secret、Client Certificate、mTLS)。文章提供了操作步骤、排错建议和工程实践指导,包括端点配置、回调地址管理、scopes设置等关

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 355

Leetcode 143. Reorder List

Leetcode 143. Reorder List 问题描述:给定一个链表,要求把最后一位插入到第二位、倒数第二位插入到第三位… 链表问题很直接的思路就是断链、连链、暂存节点、暂存下个节点、快慢指针等操作。 继承前面142的思路,这里用快慢指针找到链表的中位数(index)位置,中位数后面的数字都是需要前插的,然后先进行链表的翻转,再进行合并得到最后的结果。 代码如下: class So...

Za七杂⑧ 173

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

h264 reorder list

h264编码的时候为什么要reorder, 因为有B帧的时候,参考帧的poc不是按照顺序排列的,如果按照默认的shift操作,可能会把最近的参考帧删除了。 例如下面帧序列。 视频 帧8的参考帧是024,但是reference_list里面存储的时候是按编码顺序存储的,也就是042。这样一来,如果顺序淘汰的话,就会先把0淘汰,然后是4。实际期望是2,因为poc距离更近的优先参考。所以在编码8这个P帧的时候,就会有reorderlist,重新排列参考帧。 reference_build_list

fantasy_ARM9的博客 874

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

143. Reorder List

/* * 143. Reorder List * 11.28 by Mingyang 总体思想就是后半部分reverse然后再merge */ public void reorderList(ListNode head) { if (head == null) return; ...

weixin_30510153的博客 62

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

[LeetCode] Reorder List

给定一个单链表 L:L0→L1→…→Ln-1→Ln , 将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→… 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例 1: 给定链表 1->2->3->4, 重新排列为 1->4->2->3. 这道链表重排序问题可以拆分为以下三个小问题: 使用快慢指针来找到链表的中点,并将链表从中...

by_qmr的博客 258

[Leetcode Week6]Reorder List

Reorder List 题解 原创文章,拒绝转载 题目来源:https://leetcode.com/problems/reorder-list/description/ Description Given a singly linked list L: L0?L1?…?Ln-1?Ln, reorder it to: L0?Ln?L1?Ln-1?L2?Ln-2?… You must do th...

weixin_30500663的博客 124

LeetCode之Reorder List

Given a singly linked list L: L0→L1→…→Ln-1→Ln, reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→… You must do this in-place without altering the nodes' values. For example, Given {1,2,3,4}, reorder it t

Peep Hole 1126

【链表】reorder list

大致思路: 我之前是想着,用栈来存储倒置的链表,然后再以结点数作为while条件来依次地插入。可是超时了。因为别人题解里也有这种做法,但是有通过,看了一下,可能原因出在“别人找了链表的中点,只是用栈存储了链表的后半部分”,而我是栈存储全部部分。 看了题解受到启发,用了另一种方法:化解为熟悉的三个小题(感觉这种思想不错哦!): ① 找到链表中点,拆成两个链表 ② 反转后半部分的那个链表 ...

It's the Climb 181

leedcode——reorder list

题目: Given a singly linked list L: L0→L1→…→Ln-1→Ln, reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→… You must do this in-place without altering the nodes' values. For example, Given{1,2,3,4}, reorde

HappyToEat的博客 411

ReOrder List

Given a singly linked list L: L0→L1→…→Ln-1→Ln,reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→…You must do this in-place without altering the nodes' values. For example,Given{1,2,3,4}, reorder it to{1,4,2,3}.

yang20141109的专栏 379

Reorder Linked List

方法1 一次AC了 class Solution { public: void reorderList(ListNode* head) { if (head == NULL || head->next == NULL || head->next->next == NULL) { return; } L

sumIv1210的博客 363
上一篇: Single Number & Single Number II
下一篇: Linked List Cycle
MR_LUXY
博客等级 码龄16年 20粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值