代码随想录day3 203and707and206

1.203移除元素

思路解法:定义虚拟节点和不定义虚拟节点都可以

首先定义链表 

并根据数组构建链表

其次带虚拟节点和不带虚拟节点

 不带虚拟节点就是如果头节点是目标咱先移除

2.707设计链表

 思路:很复杂,主要是leetcode里面设置了太多的条件导致,我尝试不去定义size这个值,就会各种执行出错。

首先照例定义一个节点类并进行初始化,这个size实在是太重要了,后面必须都要先进行判定是否在size范围内

 关键函数,注意先判断,其次找到插入元素之前的一个元素

获取是要正好找到该元素

 

 删除元素

 这题主要是前面的判断,index必须要在size范围内

添加的时候index必须大于size

而在获取和删除的时候index>=size

可以想一下,如果链表,1-2-3,添加的时候index=3,相当于在末尾添加元素

删除index=3相当于第四个元素,没有,get也是一样。

3.翻转链表

最经典的反转链表,都快能默写了

 

 但是最后返回值还是写错了,还是得理清思路

首先定义一个节点存放下一个节点

这样下一个节点就能反指向上一个节点,上一个节点往前移,现在的节点也往前移

最后返回的是pre,因为head始终是一个正向的,最后指向一个空,pre指向的是head的位置

新思路:递归,感觉可以顺手解一下k个链表反转,很好懂的思路

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值