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

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

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


思路:

单链表遍历,遇到 当前指针的下一个值是 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;

    }


链接:力扣

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容