image.png给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。
返回删除后的链表的头节点。
注意:此题对比原题有改动
解题思路:
- 同题https://leetcode-cn.com/problems/remove-linked-list-elements/submissions/
- 单指针遍历,判断当前指针
p的next
是否存在,若存在则判断是否与待删除val
相等,若相等则多跳一步; - 若
head
的值就为val
,则返回处理完后的head.next
。
Python3代码:
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def deleteNode(self, head: ListNode, val: int) -> ListNode:
if not head: return head
p = head
while p.next:
if p.next.val==val:
p.next = p.next.next
else:
p = p.next
if head.val == val:
head = head.next
return head
网友评论