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个链表反转,很好懂的思路