首页 > 其他分享 >《剑指Offer》-18-删除链表的节点

《剑指Offer》-18-删除链表的节点

时间:2023-02-22 16:44:26浏览次数:39  
标签:head ListNode Offer 18 virtual ptr1 链表 next 节点

这不就,真是删除链表节点的基操

	ListNode* deleteNode(ListNode* head, int val) {
		// 需要额外考虑的是删除 头节点、尾节点 的特殊情况
		ListNode* virtual_head = new ListNode();
		virtual_head->next = head;
		// 尽量避免直接修改原指针
		ListNode* ptr1 = head, *ptr2 = virtual_head;
		while (ptr1) {
			if (ptr1->val == val) {
				ptr2->next = ptr1->next;
				break;
			}
			ptr2 = ptr1;
			ptr1 = ptr1->next;
		}
		return virtual_head->next;
	}

看起来时间效率有点差

标签:head,ListNode,Offer,18,virtual,ptr1,链表,next,节点
From: https://www.cnblogs.com/yaocy/p/17144982.html

相关文章

  • uni-app:在地图上定位自己的位置(hbuilderx 3.6.18)
    一,代码:说明:向markers数组中push数据或直接修改数组中的数据都不会引起map的刷新,     注意使用这个方法:   this.markers=[...markers];<template>......
  • 算法刷题 Day 50 | ● 123.买卖股票的最佳时机III ● 188.买卖股票的最佳时机IV
    123.买卖股票的最佳时机III这道题一下子就难度上来了,关键在于至多买卖两次,这意味着可以买卖一次,可以买卖两次,也可以不买卖。视频讲解:https://www.bilibili.com/vide......
  • uni-app:数据缓存(hbuilderx 3.6.18)
    一,代码:1,缓存写入:在被打开页面的onLoad事件中写入把打开的年级和学期写入缓存//加载时访问接口得到数据onLoad(options){......
  • uni-app:运行到微信小程序模拟器(hbuilderx 3.6.18)
    一,运行运行->运行到小程序模拟器->微信开发者工具出现报错:15:41:27.814[微信小程序开发者工具][error]IDEserviceportdisabled.TouseCLICall,pleaseenter......
  • 判断单链表是否成环
    快指针与慢指针在环中,快指针走两步,慢指针走一步,快慢指针一定会相遇。需要注意的是,快慢指针相遇的地方,不一定是环的入口。publicstaticbooleanisCircleByTwoPoint(Lis......
  • 02.07. 链表相交
    1//暴力法2ListNode*getIntersectionNode(ListNode*headA,ListNode*headB){3if(headA==nullptr||headB==nullptr)returnnullptr;4......
  • 剑指 Offer 68 - II. 二叉树的最近公共祖先(236. 二叉树的最近公共祖先)
    题目:思路:【1】简单暴力的方式就是全遍历,使用辅助空间Map记录所有节点的,然后根据其中一个节点,将其链条内的节点【即从根目录】都塞入Set中,然后第二个节点也如一样的方式......
  • 力扣days02 链表
    力扣203.移除链表元素力扣707.设计链表已经覆盖了链表的常见操作,是练习链表操作非常好的一道题目;力扣206.反转链表再定义一个新的链表,实现链表元素的反转,是......
  • .NET周报 【2月第3期 2023-02-18】
    国内文章2023年.NET仓库社区年度调查已经开始https://mp.weixin.qq.com/s/H9xUAO_yAdqm5CIHBs_eqA中国地区是.NET的一个重要的市场和社区,有着众多的.NET开发者和爱......
  • Java链表
    链表顺序表性质链表不同于顺序表,顺序表底层采用数组作为存储容器,需要分配一块连续且完整的内存空间进行使用,而链表则不需要,它通过一个指针来连接各个分散的结点,形成了......