文章--LeetCode算法--RemoveNthNodeFromEndofList

RemoveNthNodeFromEndofList

问题描述

Given a linked list, remove the nth node from the end of list and return its head.

实例

For example,
Given linked list: 1->2->3->4->5, and n = 2.
After removing the second node from the end, the linked list becomes 1->2->3->5.

实现代码

    public class Solution {
        public ListNode removeNthFromEnd(ListNode head, int n) {
            if (head.next == null) {
                return null;
            }
            int i = 0;
            ListNode p1 = head, p2 = head;
            while (p1.next != null) {
                p1 = p1.next;
                ++i;
                p2 = p2.next;
            }
            
            if (i == n - 1)
            
            {
                head = head.next;
            }
            else {
                p2.next = p2.next.next;
            }
            return head;
            
        }
    }

posted @ 2019-07-22 11:10  AI,me  阅读(64)  评论(0)    收藏  举报