题目:
Remove all elements from a linked list of integers that have value val.
Example
Given: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val = 6
Return: 1 --> 2 --> 3 --> 4 --> 5
题意:
删除单链表中所有value为某个指定的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
"""
if head == None :
return head
else : #否则,头结点不为空,先处理头结点为需要删除的节点的情况
while head != None and head.val == val :
head = head.next
t_node = ListNode(0) #处理完头结点,开始处理其他节点,头结点不变,用于返回
t_node = head
while t_node and t_node.next :
if t_node.next.val == val :
t_node.next = t_node.next.next
else :
t_node = t_node.next
return head
笔记:
各种情况考虑清楚后,没什么难点,这个题之前有遇到过。