126-237. 删除链表中的节点

描述:
英文版的,人家说的是在只给定被删除节点的情况下,删除该节点(说实话我的阅读理解可能有点差,没搞懂题的意思.我一直尝试给题里面多加一个参数)
class ListNode(object):
    def __init__(self, x):
        self.val = x
        self.next = None


class Solution(object):
    def deleteNode(self, node):
        """
        :type node: ListNode
        :rtype: void Do not return anything, modify node in-place instead.
        """
        node.val = node.next.val
        node.next = node.next.next

    def deleteNode1(self, head, node):
        """
        :type node: ListNode
        :rtype: void Do not return anything, modify node in-place instead.
        """
        if head.val == node.val:
            return head.next

        pre = head
        temp = head.next
        while temp:
            if temp.val == node.val:
                pre.next = temp.next
                break

            # 题里面说不是最后一个,但是为了以防万一还是加上
            if not temp.next:
                break
            pre = temp
            temp = temp.next


if __name__ == '__main__':
    s1 = Solution()
    head = [4, 5, 1, 9]; node = 1
    s1.deleteNode(head, node)
posted @ 2021-01-04 16:45  楠海  阅读(58)  评论(0编辑  收藏  举报