Por favor escriba una función que hace posible eliminar una lista dada (no final) nodo, sólo se le requerirá para se elimina un nodo dado.
Una lista de los existentes - cabeza = [4,5,1,9], se puede expresar como:
Ejemplo 1:
Entrada: cabeza = [4,5,1,9], nodo = 5
Salida: [4,1,9]
Después de un segundo nodo dado en la lista que valora de 5, a continuación, llame a su función: Diccionario la cepa lista 4 -> 1 -> 9.
ejemplo 2:
Entrada: cabeza = [4,5,1,9], nodo = 1
Salida: [4,5,9]
Después de un determinado valor 1 de la lista que el tercer nodo, a continuación, llamar a su función: Diccionario la cepa lista 4 -> 5 -> 9.
Descripción:
Lista que comprende al menos dos nodos.
El valor de todos los nodos de la lista son únicos.
No determinado nodo y el nodo final debe ser un nodo válido en la lista enlazada.
No devuelva ningún resultado de sus funciones.
Fuente: Botón de estancia (LeetCode)
enlace: https: //leetcode-cn.com/problems/delete-node-in-a-linked-list
Esta pregunta es muy interesante, que no tiene cabeza, sólo para un nodo
1-> 2-> 3-> 4, suprimido aquí 2
1-> 3-> 3-> 4 1 -.> 3-> 4
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
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
Que hay casos en la cabeza, no sé derecha
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def deleteNode(self, node):
"""
:type node: ListNode
:rtype: void Do not return anything, modify node in-place instead.
"""
if head == node:
tmp=head.next
head.next = None
head = tmp
else:
while(head.next.next):
if head.next==node:
head.next= head.next.next
else:
head = head.next