剑指 Offer 18. 删除链表的节点

package leetcode;

public class offer_18 {

    public ListNode deleteNode(ListNode head, int val) {
        //头结点值为val,则删除头结点
        if(head.val==val) {
            return head.next;
        }
        //node1始终是node2的前一个节点
        ListNode node1=head;
        ListNode node2=node1.next;
        while(node2!=null) {
            //找出值为val的节点
            if(node2.val!=val) {
                node1=node1.next;
                node2=node2.next;
            }
            else {
                break;
            }
        }
        //删除非末尾节点
        if(node2.next!=null) {
            node1.next=node2.next;
        }
        //删除末尾节点
        else {
            node1.next=null;
        }
        return head;
    }
}

 

posted on 2022-03-12 10:23  一仟零一夜丶  阅读(17)  评论(0)    收藏  举报