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

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

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

JAVA 用双指针找倒数第n-1个节点
既然是删改链表,想都不想先把sentinal(stn)加到链表前方,这样边界问题处理轻松很多。

public class Solution {
    /**
     * 
     * @param head ListNode类 
     * @param n int整型 
     * @return ListNode类
     */
    public ListNode removeNthFromEnd (ListNode head, int n) {
      ListNode stn = new ListNode(0);
      stn.next = head;
      ListNode f = stn, s = stn;
      while(n > 0) {
        f = f.next;
        n--;
      }
      
      while (f.next != null) {
        f = f.next;
        s = s.next;
      }
      s.next = s.next.next;
      return stn.next;
    }
}
全部评论

相关推荐

神哥了不得:(非引流)先把你的个人信息打码一下吧,看了几万份的简历,让我不知道该怎么说
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务