链表:删除值

xiaoxiao2021-02-28  33

    删除单链表中值为的给定值的元素

public ListNode removeElements(ListNode head, int val) { if(head == null) return head; ListNode dummy = new ListNode(0);    //新建一个冗余节点,省去判断删除第一个节点的过程 dummy.next = head; ListNode p1 = dummy; ListNode p2 = head; while(p2 != null){ if(p2.val == val){ p1.next = p2.next; p2 = p1;    //注意:删除节点后,p2指向的节点需往回挪一个,否则下一步p1会指向已经删除掉的元素,如果连着两个元素都需要删除,后一个元素会删除失败 } p1 = p2; p2 = p2.next; } return dummy.next; }

 

转载请注明原文地址: https://www.6miu.com/read-2614479.html

最新回复(0)