题目
给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。
返回删除后的链表的头节点。
python代码
class Solution(object):
def deleteNode(self, head, val):
"""
:type head: ListNode
:type val: int
:rtype: ListNode
"""
bp_head = ListNode(0)
bp_head.next = head
if head.val==val:
return head.next
while head.next:
if head.next.val==val:
head.next = head.next.next
break
head = head.next
return bp_head.next
这道题属于链表里面常规的基础题,考察的点如下:
- 一看到我们要返回链表头节点,一般情况下我们需要创建一个新的节点指向原始头节点,这个新节点不能改变,用来指示头节点。
- 涉及到插入或者删除节点,我们都要预先判断,比如链表a->b->c,我们要在指针指向a时取判断b是否符合条件,当b需要删除时,就将a指向c即可完成删除操作。
- 输入的节点要单独判断,原因如上。