题解 | #删除链表的节点#

删除链表的节点

https://www.nowcoder.com/practice/f9f78ca89ad643c99701a7142bd59f5d

思路:遍历链表找到删除的节点,使用的是,虚拟头节点,查看下一个节点的val是否和上一个节点相等。注意在next的时候,需要有null的判断。
import java.util.*;

/*
 * public class ListNode {
 *   int val;
 *   ListNode next = null;
 *   public ListNode(int val) {
 *     this.val = val;
 *   }
 * }
 */

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param head ListNode类 
     * @param val int整型 
     * @return ListNode类
     */
    public ListNode deleteNode (ListNode head, int val) {
        // write code here
        if(head == null){
            return head;
        }
        ListNode cur = new ListNode(0);
        cur.next = head; 
        ListNode newHead = cur;
        
        while(cur != null){
            if(cur.next != null && cur.next.val == val){
                cur.next = cur.next.next;
            }else{
                cur = cur.next;
            }

        }
        return newHead.next;
    }
}

剑指offer刷题总结 文章被收录于专栏

本专栏是本人刷剑指offer的记录总结,也欢迎大家评论区留言讨论交流~

全部评论

相关推荐

26想校招上岸的菜鸟:但是不可否认的是 leader想要3个 结果投了1000个 领导筛了100个面试 当leader找到了满意的3个 让他们继续二面 但是同时 其他的97个也会让你一面 因为已经约面了总不能毁面吧 因为leader也不确定那3个能不能过后面的面试,以及来不来 因此 这97个有一部分作为那3个的后续 剩下的 就是走个过场 面完就挂 这就是我个人认为的kpi面
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务