Delete Node In List(删除链表中指定值的节点)
题目描述:
给定一个链表的头结点,和一个目标值。要求将链表中与目标值相同的节点全部删除。
例子:
链表为1->1->2->3->1->1->2->NULL;目标值为1,则删除后的链表为:2->3->2->NULL。
解题思路1:
第一种解题思路是将链表中的节点依次的压入栈,在压栈的过程中判断当前节点是否和目标值相同,相同的节点不入栈。然后从栈顶不断取出元素将其重新连接起来将头结点返回即可。
代码如下:
|
|
解题思路2:
在考虑不用额外空间的情况下,我们的做法是遍历链表的过程中直接将该元素删除即可。需要注意的地方在于开头需要先找到不等于目标值的节点,还有记录删除节点的上一个节点。
代码如下:
|
|