基于Python和C++实现删除链表的节点
作者:孔子?孟子?小柱子! 发布时间:2022-11-19 13:52:11
标签:Python,C++,删除,链表,节点
给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。
返回删除后的链表的头节点。
示例 1:
输入: head = [4,5,1,9], val = 5
输出: [4,1,9]
解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.
示例 2:
输入: head = [4,5,1,9], val = 1
输出: [4,5,9]
解释: 给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 4 -> 5 -> 9.
思路:
建立一个空节点作为哨兵节点,可以把首尾等特殊情况一般化,且方便返回结果,使用双指针将更加方便操作链表。
Python解法:
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
class Solution:
def deleteNode(self, head: ListNode, val: int) -> ListNode:
tempHead = ListNode(None) # 构建哨兵节点
tempHead.next = head
prePtr = tempHead # 使用双指针
postPtr = head
while postPtr:
if postPtr.val == val:
prePtr.next = postPtr.next
break
prePtr = prePtr.next
postPtr = postPtr.next
return tempHead.next
C++解法:
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
class Solution {
public:
ListNode* deleteNode(ListNode* head, int val) {
ListNode *tempHead = new ListNode(-1); // 哨兵节点,创建节点一定要用new!!!!!!!!!!!!!!
tempHead->next = head;
ListNode *prePtr = tempHead;
ListNode *postPtr = head;
while (postPtr) {
if (postPtr->val == val) {
prePtr->next = postPtr->next; // 画图确定指针指向关系,按照箭头确定指向
break;
}
postPtr = postPtr->next;
prePtr = prePtr->next;
}
return tempHead->next;
}
};
来源:https://www.cnblogs.com/kongzimengzixiaozhuzi/p/13221084.html


猜你喜欢
- 我就废话不多说了,直接上代码吧!import pandas as pdimport numpy as npimport matplotlib
- 爬一个网页时,要保存的数据都没有encode,就导致保存下来的中文都变成unicode了。。。那么,怎么把一个表示字符串的unicode还原
- 如下所示:$ary = array( array('t'=>1,'y'=>2), &
- 引文: 长期以来,多媒体信息在计算机中都是以文件形式存放,由操作系统管理的,但是随着计算机网络,分布式计算的发展,对多媒体信息进行高效的管理
- 数据初始化import pandas as pdimport numpy as npa=np.array([['北京',
- 本文实例讲述了Python使用sorted排序的方法。分享给大家供大家参考,具体如下:# 例1. 按照元素出现的次数来排序seq = [2,
- 阅读上一篇:微软建议的ASP性能优化28条守则(2) 技巧 5:不要将数据库连接缓存在 Application 或 Session 对象中
- 在Python语言中,Uincode字符串处理一直是一个容易让人迷惑的问题。许多Python爱好者经常因为搞不清Unicode、UTF-8还
- 原理:建一个栈,每次碰到一个新标签,就与栈顶的标签配对,如果配对,栈顶的标签就出栈,如果不配对,这个新标签就进栈,最终,栈如果是空的,说明所
- 简述从官网下载了Python3.7.4,直接编译安装后,使用pip3出现了报错信息: Can't connect to HTTPS
- asp三天学好ADO对象之第一天 今天说一下Recordset 对象的属性1、CursorType 属性AdOpenForwardOnly:
- 应用场景:在实际使用中经常会遇到需要在Form表单中使用table表格进行表单提交,同时又需要对table的字段进行校验,效果如图所示:这个
- WeUI 是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信内网页和微信小程序量身设计,令用户的使用感知更加统一。
- 基本模块 python爬虫,web spider。爬取网站获取网页数据,并进行分析提取。基本模块使用的是 urllib,urlli
- 完成了UI,我们就需要对数据进行处理了。在开始“数据”的本地存储之前,我们先来了解一下client-side database storag
- “'验证码'等于'流氓软件'”这句话本身存在逻辑问题,因为“验证码”并不是一个软件,而是软件里的一个功能。这
- ASP访问数据库的方式有哪些?在ASP中可以通过三种方式访问数据库:1、IDC(Internet Database Connec
- 我的同事Fara给大家介绍了戴尔网站首页的改版设计,这里我还想和大家介绍一下戴尔是如何从网站用户使用体验的角度进行设计,让大家进一步了解戴尔
- 本文实例为大家分享了JavaScript实现淘宝网图片的局部放大的具体代码,供大家参考,具体内容如下要实现的效果如下:<!DOCTYP
- 一、 概念: ① 数据库同步 (主从同步 --- 主数据库写的同时 往从服务器写数据)② 数据库同步 (主主同步 -