美文网首页
剑指 Offer 18. 删除链表的节点

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

作者: 历十九喵喵喵 | 来源:发表于2020-12-05 20:53 被阅读0次

给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。

返回删除后的链表的头节点。

思路:

单链表遍历,遇到 当前指针的下一个值是 val 则把指针赋给下下一个节点,就可以删掉这个节点了。

需要注意的地方:

1.判空

很多大佬写得很好,作为参考写代码有帮助。

第一次有解题思路,但是不是很会遍历链表,看别人写的是:创建一个cur 节点指向头节点,然后一个一个条件排除后,通过 if(cur.next !=null) 就可以了,还是需要复习一下 链表的数据结构! 加油!

代码:

public ListNode deleteNode(ListNode head, int val) {

        if (head == null) return null;

        if (head.val == val) return head.next;

        ListNode cur = head;

        while (cur.next != null && cur.next.val != val){

            cur = cur.next;

       }

        if (cur.next != null)

            cur.next = cur.next.next;

        return head;

    }

链接:力扣

相关文章

网友评论

      本文标题:剑指 Offer 18. 删除链表的节点

      本文链接:https://www.haomeiwen.com/subject/zzcbwktx.html