Day3 :代码随想录算法训练营第三天| leetcode203. 移除链表元素、leetcode707.设计链表、leetcode206.反转链表。

1.力扣203:移除链表元素

题目描述:题意:删除链表中等于给定值 val 的所有节点。

示例 1:
输入:head = [1,2,6,3,4,5,6], val = 6
输出:[1,2,3,4,5]

示例 2:
输入:head = [], val = 1
输出:[]

示例 3:
输入:head = [7,7,7,7], val = 7
输出:[]

思路:思路简单,逻辑上删除是下一个指向下一个的下一个,物理上需要借助虚拟结点辅助删除。这里注意头结点的删除和其余结点的删除都需要用到我和while,且删除除头结点外的其余节点时,cur一定是找到要被删除结点的前一个结点。

代码如下:
在这里插入图片描述
总结:这道题思路简单,分两方面想:头结点+其余节点。

力扣707 设计链表

链表基础操作,过。

力扣206 翻转链表

问题描述:题意:反转一个单链表。

示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL

思路:设置pre指向当前结点cur的前一个,便于将当前结点移动到pre的下一个,同时设置一个temp保存当前节点cur的下一个。

代码如下:
1.正常双指针写法:
在这里插入图片描述

2.递归写法(思路一样,递归函数返回的一直是下一次的pre和cur)
在这里插入图片描述
总结:这道题主要是思路要对,如何使它翻转,就是设置一个pre保存前当前的前一个,便于使指针翻转,总体来看思路就是要把原链表的箭头翻过来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值