题目:
删除链表中等于给定值 val 的所有节点。
示例:
输入: 1->2->6->3->4->5->6, val = 6 输出: 1->2->3->4->5
思路:
给这个链表设定一个虚头结点,头结点的val不存放实际意义的值,next指向链表的第一个节点。从链表的第一个节点开始判断是否val值与给定值相等。
代码:
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution(object):
def removeElements(self, head, val):
"""
:type head: ListNode
:type val: int
:rtype: ListNode
"""
pre = ListNode(0)
pre.next = head
p = pre
while p.next !=None:
if p.next.val == val:
p.next = p.next.next
else:
p = p.next
return pre.next