题解 | #删除链表的倒数第n个节点#

删除链表的倒数第n个节点

http://www.nowcoder.com/practice/f95dcdafbde44b22a6d741baf71653f6

/*
 * function ListNode(x){
 *   this.val = x;
 *   this.next = null;
 * }
 */

/**
  * 
  * @param head ListNode类 
  * @param n int整型 
  * @return ListNode类
  */
function removeNthFromEnd( head ,  n ) {
    // write code here
//   n=n+1
  var cur = head
  var fast = head
  // 快指针相差k个
  while(n>0){
    fast=fast.next
    n--
  }
  //删除个数等于链表长度的情况//即啥删除第一个数//fast==null
  if(!fast) return head.next
  // 快指针走到头的时候, 慢指针就是当前到倒数第n个节点
  while(fast.next){
    cur=cur.next
    fast=fast.next
  }
  cur.next = cur.next.next
  return head
}
module.exports = {
    removeNthFromEnd : removeNthFromEnd
};

本题与上一个题返回后K个节点类似, 只是多了一个删除的操作.
删除: cur.next=cur.next.next
需要注意处理n=链表长度的情况 if(fast===null)return head.next

全部评论

相关推荐

05-25 10:45
门头沟学院 Java
Frank_zhan...:没实习一个项目肯定不够,可以再做一个轮子,技术栈再补一个mq,微服务,整体再换个简历模板,暑期尽量再找一个日常实习
无实习如何秋招上岸
点赞 评论 收藏
分享
牛客刘北:如果暑期实习是27届的话,你要晚一年才会毕业,企业为什么会等你呢?要搞清时间逻辑呀!27届现在实习只能是在暑假实习,这是日常实习,不是暑期实习。所以多去投日常实习吧,暑期实习肯定不会要你的
点赞 评论 收藏
分享
本神尊:看来是没招到小红薯上的人
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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