第九周作业

一、如图,该题要求删除链表中指定节点。

第九周作业

当我们删除列表中节点时要考虑节点位置,然后采取不同措施。如果节点不在开头,由于知道父节点,故操作很方便;如果节点在开头,可以设置辅助头节点或从节点下一个开始查找删除遍历完再处理头节点。出于这种考虑我在代码中设置了伪头节点。

class Solution(object):
    def removeElements(self, head, val):
        new_head = pre = ListNode(0)  '''设置伪头节点,方便我们遍历'''
        pre.next = head
        while head:
            if head.val == val:       '''删除头节点'''
                pre.next = head.next
            else:
                pre = pre.next        '''删除中间节点'''
            head = head.next

        return new_head.next

第九周作业

编译执行结果:

第九周作业

可见我们成功从链表中删除了指定数值6,代码正确。