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

删除链表的节点

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节点。
全部评论

相关推荐

用户64975461947315:这不很正常吗,2个月开实习证明,这个薪资也还算合理,深圳Java好多150不包吃不包住呢,而且也提前和你说了没有转正机会,现在贼多牛马公司骗你说毕业转正,你辛辛苦苦干了半年拿到毕业证,后面和你说没hc了😂
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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