Java教程

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

本文主要是介绍剑指 Offer 18. 删除链表的节点,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

力扣打卡:剑指 Offer 18. 删除链表的节点

解题思路

使用迭代进行遍历链表
使用虚拟头节点,使得head节点像普通节点一样删除

代码

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode deleteNode(ListNode head, int val) {
        ListNode dummy = new ListNode(0);
        dummy.next = head;
        head = dummy;
        while(head != null && head.next != null){ // 判断是否为空链表,或者是下一个节点是否为空 可以使用哨兵节点
            if(head.next.val==val) head.next = head.next.next;
            head = head.next;
        }
        return dummy.next;
    }
}
这篇关于剑指 Offer 18. 删除链表的节点的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!