【数据结构篇】~链表算法题2

链表算法题2

  • 1.返回倒数第k个节点
    • 思路
    • 解析
  • 2.链表的回文结构​
    • 思路
    • 解析1(空间复杂度不符合)
    • 解析2
  • 3.相交链表​
    • 思路
    • 解析

1.返回倒数第k个节点

OJ链接
在这里插入图片描述

思路

有点像高中学的相对位移
利用快慢指针,开始时都指向头节点,然后让快指针先走k步,再让两个指针同时走,直到快指针走到 NULL ,返回慢指针的数据就行

解析

在这里插入图片描述

typedef struct ListNode lsnode;
int kthToLast(struct ListNode* head, int k){lsnode* slow=head,*fast=head;while(k--){fast=fast->next;}while(fast){fast=fast->next;slow=slow->next;}return slow->val;
}

2.链表的回文结构​

OJ链接
在这里插入图片描述

思路

回文的意思就是轴对称,也就是里面的数据呈轴对称就是会文结构

解析1(空间复杂度不符合)

可以把链表里的数据全放到数组中,然后判断数组是否是回文就行
在这里插入图片描述

 bool chkPalindrome(ListNode* A) {// write code here//if(A==NULL)//return NULL;int arr[900];int i=0;ListNode*purc=A;while(purc){arr[i++]=purc->val;           purc=purc->next;}      int left=0;int right=i-1;while(left<right){if(arr[left++]!=arr[right--]){return false;}}return true;}

解析2

按部就班的判断链表是否是回文结构
那么就要先找链表的中间节点,然后从中间节点把链表分为两部分,把后部分逆置和前部分进行比较就行

在这里插入图片描述

 ListNode* midnode(ListNode*head){ListNode* slow=head;ListNode* fast=head;while(fast && fast->next){slow=slow->next;fast=fast->next->next;}return slow;}ListNode*nizhi(ListNode*head){ListNode*l1=nullptr,*l2=head,*l3=head->next;while(l2){l2->next=l1;     l1=l2;         l2=l3;if(l3)l3=l3->next;}return l1;}bool chkPalindrome(ListNode* A) {// write code here     //先找中间节点ListNode*phead=A;ListNode* mid = midnode (phead);//然后逆置第二部分ListNode* newhead=nizhi(mid);//然后比较,直到两个有一个为空while(A && newhead){if(A->val != newhead->val)return false;else{ A=A->next;newhead = newhead->next;}}return true;}

3.相交链表​

OJ链接
在这里插入图片描述

思路

先把两个链表长度对齐,然后同步遍历

解析

typedef struct ListNode lsnode;
struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB)
{lsnode*l1=headA,*l2=headB;int sizea=0;int sizeb=0;while(l1){sizea++;l1=l1->next;      }while(l2){sizeb++;l2=l2->next;     }//计算a和b的长度,让长的先走差值步,到同一起点上int gap=abs(sizea-sizeb);if(sizea < sizeb){lsnode*plong= headB;lsnode*pshort=headA;}lsnode* plong = headA;lsnode* pshort = headB;while(gap--){plong=plong->next;}//开始比较while(plong && pshort){//这里比较地址,如果比较值得话有问题if(plong == pshort){ return pshort;}plong=plong->next;pshort=pshort->next;    }return NULL;   
}

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

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

相关文章

VMware虚拟机安装的Ubuntu,桥接方式静态ip,内网可以访问,ping外网不可用

1.环境说明 系统&#xff1a;Ubuntu 24.04 环境&#xff1a;VMware下桥接静态IP设置 2.问题&#xff1a;ping www.baidu.com报错 [~] ping www.baidu.com ping: www.baidu.com: Temporary failure in name resolutio…

php邮箱服务器怎么搭建?如何构建服务器?

php邮箱服务器配置教程指南&#xff1f;php邮件服务器如何搭建&#xff1f; 搭建一个稳定高效的php邮箱服务器&#xff0c;不仅可以提升邮件传输的效率&#xff0c;还能增强数据的安全性。那么&#xff0c;如何着手搭建这样一个服务器呢&#xff1f;AokSend将详细探讨php邮箱服…

【Go - 每日一小问 ,const 变量存储在哪里,堆还是栈上?】

答&#xff1a;都不是 &#xff0c; 在bss(未初始化数据区) 和 data(初始化数据区)上。 在内存布局上遵循一定规律&#xff0c;Go 进程的内存空间布局由高地址到低地址大致可分为以下几段: 栈(stack): 用户态的栈&#xff0c;栈的大小是固定的&#xff0c;其大小可以使用ulimi…

云服务器中查看Nginx报错日志及解决思路

目录 前言 一、查看nginx日志信息 二、我的解决思路 前言 线上报错不可怕&#xff0c;能找到对应日志&#xff0c;那这个报错就解决一大半了。 默认情况下&#xff0c;nginx日志文件存储在 /var/log/nginx/ 目录中&#xff0c;cd /var/log/nginx/ 一、查看nginx日志信息 …

【hot100篇-python刷题记录】【跳跃游戏 II】

R7-贪心算法 目录 方法1&#xff1a; 方法2&#xff1a; 很贪心啊&#xff0c;局部最优解就是全局最优解&#xff0c;要求到达nums[n-1]的最小步数&#xff0c;我们每一步都走最远。 方法1&#xff1a; class Solution:def jump(self, nums: List[int]) -> int:nlen(n…

畅游5G高速网络:联发科集成Wi-Fi6E与蓝牙5.2的系统级单芯片MT7922

这周末,除非外面下钞票,否则谁也拦不住我玩《黑神话悟空》(附:两款可以玩转悟空的显卡推荐) IPBrain平台君 集成电路大数据平台 2024年09月03日 17:28 北京 联发科一直以创新技术追赶市场需求…… “不努力向前游就会被海浪拍回岸边…” 芯片设计公司产品层出不穷,想要站…

vue3+ts 实现模板表格文件下载~

1、效果图&#xff1a; 2、创建点击事件&#xff0c;并发起请求&#xff0c;获取模板表格文件下载url地址。 //组件 <a-button class"btn btn_width" click"download"> 下载模板 </a-button>// 文件模板下载 import { getTemplate } from /ap…

Linux【1】基础

目录 cd ​编辑 Linux的粘贴是Ctrlshiftv&#xff0c;复制、剪切&#xff1a; pwd打印当前路径 cat 文件目录 读取 ↑ 可以调取之间输过的命令 mv A B 把文件名A改成B #掐头%去尾 touch 文件名 mkdir创建目录​编辑 删除rm 只能删除文件 终端命令格式 帮助 man命…

RK3588 13.0去掉SystemUI快速设置选项

Android13.0的SystemUI下拉菜单有很多快速设置选项&#xff0c;有些选项对我们设备来说是多余的&#xff0c;用户要求去掉无用的选项&#xff0c;只保留Internet Bluetooth Screen record 去掉之前&#xff1a; 去掉之后&#xff1a; 为了去掉这些快速设置选项&#xff0c;试…

大零售时代:开源 AI 智能名片、2+1 链动与 O2O 商城小程序引领融合新趋势

摘要&#xff1a;本文深入探讨了当今零售业态的发展趋势&#xff0c;指出在数据匹配的时代&#xff0c;人依然在零售中发挥着重要作用。通过对大零售理念的阐述&#xff0c;分析了跨行业跨业态融合的必然性&#xff0c;强调了业态融合的指导思想以及实现方式。同时&#xff0c;…

List 的介绍

目录 1. 什么是List 2. 常见接口介绍 3. List的使用 1. 什么是List 在集合框架中&#xff0c; List 是一个接口&#xff0c;继承自 Collection 。 Collection 也是一个接口 &#xff0c;该接口中规范了后序容器中常用的一些方法&#xff0c;具体如下所示&#xff1a; Iterab…

【电源时序测量】

安捷伦示波器电源时序测量 电源时序测量可以表征电源的启动、关闭、负载瞬态响应和纹波等关键参数。 1. 时序测量工具 安捷伦示波器配备了各种时序测量工具&#xff0c;包括&#xff1a; 测量光标&#xff1a;用于手动测量时间间隔和幅度。 自动测量&#xff1a;自动测量特定…

Golang | Leetcode Golang题解之第394题字符串解码

题目&#xff1a; 题解&#xff1a; var (src stringptr int )func decodeString(s string) string {src sptr 0return getString() }func getString() string {if ptr len(src) || src[ptr] ] {return ""}cur : src[ptr]repTime : 1ret : ""if cur &…

python学习之路 - PySpark快速入门

目录 一、PySpark实战1、前言介绍2、基础准备a、pySpark库的安装b、构建pySpark执行环境入口对象c、pySpark编程模型 3、数据输入a、python数据容器转RDD对象b、读取文件内容转RDD对象 4、数据计算a、map算子b、flatMap算子c、reduceByKey算子d、综合案例e、filter算子f、disti…

Flutter修改Android包名

一、前言 我在将Android打包上传到google商店的时候提示我“com.example”已受到限制&#xff0c;请换一个软件包名称。“的错误。因此我们需要去修改flutter的Android包名。 二、操作流程 1.修改路径 android ——> app ——> src ——> debug ——> AndroidMa…

K12智慧校园云平台源码,智慧校园小程序源码,支持PC+小程序,提供丰富的API接口,支持和其他系统的融合对接

智慧校园平台是目前教育信息化领域的热点之一。随着数字化转型的加速&#xff0c;越来越多的学校开始寻求解决方案&#xff0c;以提高教育管理的效率和质量。 智慧校园电子班牌系统是一种集成信息化技术、物联网、智能化的教育管理解决方案&#xff0c;它在校园内实现了信息共…

信捷 XD PLC 双精度浮点数的初始化及传输

在用信捷XDH PLC进行运动控制时&#xff0c;加减速时间是个64位的双精度的浮点数&#xff0c;那么如果不在人机界面写到PLC&#xff0c;PLC自身也是可以初始化的&#xff0c;比如0.005,怎么办呢。 用FLT指令把 整数出单精度浮点数&#xff0c;然后EDIV指令把两个单精度浮点数相…

冲击大厂算法面试=>链表专题【链表反转之局部反转升级版】

目录标题 多重局部反转之K 个一组翻转链表上代码题解呀实在不会的时候记住 多重局部反转之K 个一组翻转链表 上代码 整个函数通过不断地检查剩余节点数量和进行局部反转&#xff0c;实现了链表的分组反转&#xff0c;最后返回反转后的链表。这种方法有效地利用了额外的 pre 和…

idea插件【1】Smart Tomcat

一、简介 在开发过程中除了springboot项目支持jar运行&#xff0c;很多场景下需要使用到tomcat外置服务部署&#xff0c;此时我们可以使用idea插件Smart Tomcat &#xff08;Smart Tomcat 插件是一个用于简化与 Tomcat 服务器交互的工具&#xff0c;它提供了一些额外的功能来增…

opencv之几何变换

文章目录 1 前言2 线性几何变换的主要类型2.1 平移 (Translation)&#xff1a;2.1.1 定义2.1.2代码 2.2 缩放 (Scaling)&#xff1a;2.2.1 定义2.2.2 代码 2.3 旋转 (Rotation)&#xff1a;2.3.1 定义2.3.2 代码 2.4 仿射变换 (Affine Transformation)&#xff1a;2.4.1 定义2.…