Mi informacion de contacto
Correo[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Dado el encabezado del nodo principal de una lista vinculada y un valor entero, elimine todos los nodos en la lista vinculada que cumplan con Node.val == val y devuelva el nuevo nodo principal.
Ejemplo 1:
Entrada: cabeza = [1,2,6,3,4,5,6], val = 6
Salida: [1,2,3,4,5]
Ejemplo 2:
Entrada: cabeza = [], val = 1
Producción: []
Ejemplo 3:
Entrada: cabeza = [7,7,7,7], val = 7
Producción: []
pista:
El número de nodos en la lista está en el rango [0, 104]
1 <= Nodo.val <= 50
0 <= valor <= 50
El siguiente es el código que utiliza Java para resolver el problema de eliminar elementos de una lista vinculada:
- class ListNode {
- int val;
- ListNode next;
-
- ListNode(int val) {
- this.val = val;
- }
- }
-
- public class RemoveLinkedListElements {
- public ListNode removeElements(ListNode head, int val) {
- // 创建一个虚拟头节点,方便处理头节点可能被删除的情况
- ListNode dummy = new ListNode(0);
- dummy.next = head;
-
- ListNode curr = dummy;
- while (curr.next!= null) {
- if (curr.next.val == val) {
- curr.next = curr.next.next;
- } else {
- curr = curr.next;
- }
- }
-
- return dummy.next;
- }
-
- public static void main(String[] args) {
- // 构建链表
- ListNode head = new ListNode(1);
- ListNode node2 = new ListNode(2);
- ListNode node3 = new ListNode(6);
- ListNode node4 = new ListNode(3);
- ListNode node5 = new ListNode(4);
- ListNode node6 = new ListNode(5);
- ListNode node7 = new ListNode(6);
- head.next = node2;
- node2.next = node3;
- node3.next = node4;
- node4.next = node5;
- node5.next = node6;
- node6.next = node7;
-
- RemoveLinkedListElements solution = new RemoveLinkedListElements();
- ListNode newHead = solution.removeElements(head, 6);
-
- // 打印移除指定值后的链表
- while (newHead!= null) {
- System.out.print(newHead.val + " ");
- newHead = newHead.next;
- }
- }
- }
La idea de este código es: crear un nodo principal virtual 'ficticio ', apunte su puntero 'siguiente' al nodo principal 'head' de la lista enlazada original. Luego, recorra la lista vinculada a través de un bucle y cuando se encuentre un nodo con un valor igual a 'val', se eliminará de la lista vinculada. Finalmente, devuelve el nodo 'siguiente' de 'dummy', que es el nodo principal de la nueva lista vinculada después de eliminar el nodo de valor especificado.
(El artículo es un resumen y una referencia de algunas experiencias personales del autor en el proceso de aprendizaje de Java. Si hay lugares inapropiados o incorrectos, critíquelos y corríjalos. Trabajaremos duro para corregirlos. Si hay alguna infracción , comuníquese con el autor para eliminar la publicación).