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

删除链表的节点

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

 public ListNode deleteNode (ListNode head, int val) {
        // write code here
     //第一步判断第一个数就要成为删除的情况
        if(head.val==val){
            //第一种情况返回值的时候一定不要忘了加.next
            return head.next;
        }
        
        ListNode p1 = head;
        ListNode p2 = head.next;
        while(p2!=null){
           
        if(p2.val != val){
            //判断p2是因为如果判断p1的话就无法通过.next来跳过以达到删除的目的
      
            p1 = p1.next;
            p2 = p2.next;  
        }else{
             p1.next = p2.next;
            return head;
        }
            
        }
        return null;
    }

切记不要把链表当数组 及时 通过建立新的对象赋值头指针他们的指向下一个节点也是同一个节点,我觉得链表题一定多刷几遍才能记得熟悉

全部评论

相关推荐

鬼迹人途:你去投一投尚游游戏,服务器一面,第一个图算法,做完了给你一个策略题,你给出方案他就提出低概率问题,答不上当场给你挂
点赞 评论 收藏
分享
Twilight_mu:经典我朋友XXXX起手,这是那种经典的不知道目前行情搁那儿胡编乱造瞎指导的中年人,不用理这种**
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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