剑指offer08 JZ18 删除链表的节点

删除链表的节点

https://www.nowcoder.com/practice/f9f78ca89ad643c99701a7142bd59f5d?tpId=13&tqId=2273171&ru=/exam/oj/ta&qru=/ta/coding-interviews/question-ranking&sourceUrl=%2Fexam%2Foj%2Fta%3Fpage%3D1%26tpId%3D13%26type%3D13

  1. 删除链表就是修改cur.next的指向,跳过一个节点
  2. 如果值相等就跳过一个节点。修改指向
  3. 需要考虑删除节点在头结点。直接返回cur.next
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
        ListNode cur=head;
        if(cur.val==val){
            return cur.next; //处理头部元素就是要删除的元素
        }
        //删除链表就是修改指针指向  
        while(cur.next!=null){
            if(cur.next.val==val){
                cur.next=cur.next.next; //跳过一个,修改指向
            }
            else{
                cur=cur.next;//正常遍历
            }
        }
        return head;
    }
}

全部评论

相关推荐

ArisRobert:统一解释一下,第4点的意思是,公司按需通知员工,没被通知到的员工是没法去上班的,所以只要没被通知到,就自动离职。就是一种比较抽象的裁员。
点赞 评论 收藏
分享
想润的芹菜人狠话不多:把其中一个老总放中间都会得罪另一个
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务