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

删除链表的节点

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

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) {
        if (head.val == val) {
            return head.next;
        }
        // write code here
        ListNode result = head;
        ListNode before = head;
        ListNode mid = head;
       
        while(true) {
            if(mid.val == val) {
                before.next = mid.next;
                break;
            }
            if(mid.next == null) {
                break;
            }
            before = mid;
            mid = mid.next;

        }
        return result;
    }
}
  1. 特殊情况为 第一个值就是目标值,此时返回头节点得下一个节点;
  2. 需要拿到当前判断节点mid得上一个节点before,如果判断节点得值为目标值, 则使上一个节点before的next结点指向当前节点mid的next节点。
全部评论

相关推荐

不愿透露姓名的神秘牛友
06-18 17:37
点赞 评论 收藏
分享
牛客383479252号:9,2学生暑期实习失利开始投小厂,给这群人整自信了
点赞 评论 收藏
分享
04-29 00:12
小米_人力资源
牛客448863700号:也得看岗位呀,我还拿下美团呢,不说了送单了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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