在移除链表元素的过程中,首先先要确定Head是可用的
所以要首先对于头节点进行判断保证再头节点value与val相同是删掉,并更新新的head;
接下来是通过当前节点cur和next两个节点共同来操作
根本上就是每次next遇到val相同的节点,用tmp先标记这个节点,对于cur节点来说,跳过下一个节点 直接链接到再下一个节点,链接完成后,通过删除tmp来删除标记好的节点
1.需要先构造结构体node
2.都是基于dummyhead的基础上进行的
添加节点的方法 就是创建新节点 再创建dummyhead的cur节点 如果添加的位置再头或者尾巴就是根据cur的位置来,如果是根据index,那就whileloop到对应位置链接上新节点就可以了
特别要注意的是在链接节点时候 都是先把新节点后面链接好,在把已有的节点链接到新节点上,这样可以直接标记好,比较方便,对于删除来说也是先链接完成后面的,再删前面。
总的来说增删都是先考虑先后在前,如果不行再考虑别的
反转链表就需要三个节点
1.标记节点 2. 当前节点 3. 链接节点
操作顺序就是132
先通过标记节点记录下一轮操作的位置
把当前节点链到链接节点上,并更新链接节点的位置,链完了之前的当然就要链现在当前这个了,
所以把链接节点更新过来
链接节点动了 那么当前节点要移动到标记节点 之后在进行后续操作
知道当前节点变成null也就说明到了最尾,这时更新节点就变成了新的链表的头