OJ题训练(二)

news2024/11/26 8:44:17

文章目录

    • 反转链表
      • 题目来源
      • 题目描述
      • 知识点
      • 题解
        • 题解一(递归实现)
          • 图解
        • 题解二(双指针)
          • 图解

反转链表

题目来源

  牛客网

题目描述

给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。

数据范围: 0≤n≤10000≤n≤1000

要求:空间复杂度 O(1)O(1) ,时间复杂度 O(n)O(n) 。

如当输入链表{1,2,3}时,经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。

知识点

  链表

题解

题解一(递归实现)

class Solution {
public:
    ListNode* ReverseList(ListNode* pHead) {
		if(pHead == nullptr || pHead->next == nullptr)
			return pHead;

		ListNode* ans = ReverseList(pHead->next);
		pHead->next->next = pHead;
		pHead->next = nullptr;

		return ans;
    }
};
图解

在这里插入图片描述

  递归的问题是如果数据过大,可能会栈溢出,空间开销比较大。

题解二(双指针)

class Solution {
public:
    ListNode* ReverseList(ListNode* pHead) {
		if(pHead == nullptr || pHead->next == nullptr)
			return pHead;
			
		ListNode* cur = pHead;
		ListNode* pre = pHead->next;
		pHead->next = nullptr;

		while(pre != nullptr)
		{
			ListNode* next = pre->next;
			pre->next = cur;
			cur = pre;
			pre = next;
		}

		return cur;
    }
};
图解

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/598676.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Nginx通过SplitClient进行AB测试以及负载均衡分流

文章目录 前言一、Split Clients是什么?二、使用步骤2.1 根据User-Agent进行分流2.2 根据Cookie进行分流2.3 根据IP地址进行分流2.4 根据时间进行分流2.5 根据随机数进行分流 总结 前言 Nginx是一个被广泛应用的Web服务中间件,今天分享一下如何用它做AB…

js获取html input 单选框值的问题

测试代码&#xff1a; ratio.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><script src"ratio.js"></script> </head> <body><input…

一文回顾 Boundless Hackathon at Stanford 首期 Workshop

由Stanford Blockchain Accelerator、Zebec Protocol、Nautilus Chain、Rootz Lab共同主办的“ Boundless Hackathon Stanford ”主题的黑客松活动&#xff0c;即将开启。该活动旨在帮助更多的优质开发者参与到Web3世界的发展中&#xff0c;推动链上设施的创新与应用。 在5月26…

常见的递归

⭐️前言⭐️ 本篇文章分享一些常见的递归题目&#xff0c;为后边的动态规划篇章做铺垫。 &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f4dd;私信必回哟&#x1f601; &#x1f349;博主将持续更新学习记录收获&#xff0c;友友们有任何问题可以在评论区留言…

设计模式(三):创建型之原型模式

设计模式系列文章 设计模式(一)&#xff1a;创建型之单例模式 设计模式(二)&#xff1a;创建型之工厂方法和抽象工厂模式 设计模式(三)&#xff1a;创建型之原型模式 目录 一、设计模式分类二、原型模式1、概述2、结构2、实现3、扩展&#xff08;深克隆&#xff09; 一、设计…

SSM编程---Day 07

目录 SpringMVC 一、概念 二、springMVC的请求处理流程 三、mvc:annotation-driven 标签的作用 四、HandlerMapping、Handler和HandlerAdapter的介绍 五、SpringMVC 体系结构 六、SpringMVC的常用注解 七、view和controller之间的传值 SpringMVC 一、概念 1、 Spring…

ThreadLocal和局部变量的区别

ThreadLocal为线程提供一个线程级别的储物柜&#xff0c;可以往里面存数据&#xff0c;取数据。数据是专属于线程的。 而局部变量&#xff0c;也是专属于线程的。这样来看&#xff0c;两者似乎功能上是一样的&#xff0c;也确实是一样的。 不过局部变量只能通过显示传参的方式…

C++MFC 面向对象程序设计 小型通讯录管理程序设计

课程名称&#xff1a;面向对象程序设计 实验名称&#xff1a;小型通讯录管理程序设计 1.实验目的 深入理解面向对象技术的封装性、继承性和多态性&#xff0c;掌握面向对象程序设计方法。综合应用C基础知识实现小型应用程序开发。掌握使用C流类库实现数据文件访问的操作方…

LabVIEWCompactRIO 开发指南第七章47 EtherCAT RIO

LabVIEWCompactRIO 开发指南第七章47 EtherCAT RIO 在某些应用中&#xff0c;主I/O和扩展I/O系统需要紧密同步--所有输入和输出必须同时更新。使用确定性总线&#xff0c;主控制器不仅可以知道扩展I/O何时更新&#xff0c;还可以确切地知道数据到达需要多长时间。可以使用NI …

电动葫芦无法运转怎么办?

有关电动葫芦无法起动与运转故障&#xff0c;电动葫芦无法起动怎么办&#xff0c;有没有好的解决办法&#xff0c;检查电源熔丝是否烧断&#xff0c;定子绕组相间短路、接地或断路&#xff0c;以及是否负载过大或传动机械故障等。 电动葫芦无法运转故障怎么办 1、首先&#xf…

vue 3 第二十六章:样式(scoped、深度选择器、全局选择器、css modules、自定义注入名称、css中v-bind)

文章目录 1. 介绍2. 基本使用3. scoped原理4. 深度选择器5. 插槽选择器6. 全局选择器7. 混合使用局部与全局样式8. CSS Modules9. 自定义注入名称10. CSS 中的 v-bind() 1. 介绍 在 Vue 中&#xff0c;我们可以使用 scoped 特性来给组件的样式添加作用域。通过为组件的 <st…

win11 revit2022如何卸载干净

目录结构 杀死相关进程卸载相关应用卸载相关目录删除注册表中的相关数据 注意 &#xff1a;下面的结束任务和删除东西有则删除没有则不用管 杀死相关进程 进入任务管理器&#xff08;control shift esc&#xff09;结束相关任务&#xff08;Autodesk开头的文件和名字中带rev…

交通 | 共乘出行:基于图结构的动态多时空供需网络的均衡度量方法

​ 论文解读 郭王懿&#xff0c;孙楚天&#xff0c;陈泰劼&#xff0c;张云天 ​ 编者按 共乘出行极大地改变了人们的日常出行方式。如何高效运营背后的双边平台是极具挑战性的工作。滴滴出行、Lyft公司是其中的佼佼者。本专题将探讨双边平台运营中的一个关键问题&#xff…

高速吹风筒中的发热丝介绍--【其利天下技术】

高速吹风筒用得发热丝&#xff0c;其实是个大功率的家伙&#xff0c;整个产品它的功耗是最大的。它有什么特别的地方呢&#xff1f;与传统的风筒发热丝&#xff0c;高速风筒发热丝有何要求呢&#xff1f; 一&#xff1a;发热丝工作原理&#xff1a; 发热丝是指由导体材料制成的…

LabVIEWCompactRIO 开发指南第七章46 Ethernet RIO

LabVIEWCompactRIO 开发指南第七章46 Ethernet RIO 使用标准以太网协议扩展I/O时&#xff0c;可以使用NI9148以太网RIO扩展机箱。程序员可以利用现有的网络基础设施&#xff0c;如交换机和路由器。尽管全双工交换机网络消除了数据包冲突&#xff0c;但交换机会引入抖动&#…

LeetCode刷题 --- 哈希表

1. 两数之和 解题思路&#xff1a; 利用哈希表&#xff0c;key存数组当前值&#xff0c;value存数组下标两数之和等于target&#xff0c;可以看做是两个数是配对遍历数组&#xff0c;看哈希表中有没有值和这个当前值配对&#xff0c;如果没有&#xff0c;就存入哈希表如果有&am…

Fiddler抓包工具之fiddler设置过滤

fiddler设置过滤 基本的过滤操作流程以百度为例 步骤&#xff1a; 1、右侧高级工具栏点击Filters》勾选Use Filters》选择Show only Internet Hosts和Show only the following Hosts》在文本框中输入host地址 2、点击Changes not yet saved》再点击Actions》Run Filterset …

【医学图像】图像分割系列.4

介绍几篇使用Transformer结构做医学图像分割的论文&#xff1a;CASTformer&#xff08;NeuralPS2022&#xff09;&#xff0c;PHNet&#xff08;arXiv2023&#xff09;。 Class-Aware Adversarial Transformers for Medical Image Segmentation, NeuralPS2022 解读&#xff1a…

37. C++ 基于范围的for循环、指针空值——nullptr(c++11新特性)

目录 1.基于范围的for循环语法如下&#xff1a; 2.一些编程中的实例 3.指针空值——nullptr c11标准下的NULL和nullptr 今天进行了新的学习&#xff0c;基于范围的for循环。基于范围的 for 循环&#xff08;Range-based for loop&#xff09;是 C11 引入的一种循环结构…

机器学习 监督学习 Week3

Logistic Regression 一个用于分类的算法&#xff0c;模型拟合后&#xff0c;以某些值作为阈值&#xff0c;将数据区分为不同的类别。过去的回归算法中&#xff0c;y的值可以范围很广&#xff0c;而在分类算法中y代表类别&#xff0c;往往只有几个&#xff0c;甚至只有两个(tru…