力扣:剑指 Offer II 021. 删除链表的倒数第 n 个结点

剑指 Offer II 021. 删除链表的倒数第 n 个结点

题目描述:

给定一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。

示例:

力扣:剑指 Offer II 021. 删除链表的倒数第 n 个结点_第1张图片


class Solution {
    public ListNode removeNthFromEnd(ListNode head, int n) {
        ListNode dummy = new ListNode(0, head);
        int length = getLength(head);
        ListNode cur = dummy;
        for (int i = 1; i < length - n + 1; ++i) {
            cur = cur.next;
        }
        cur.next = cur.next.next;
        ListNode ans = dummy.next;
        return ans;

    }
    public int getLength(ListNode head){
        int lenthg = 0;
        while(head != null){
            ++lenthg;
            head = head.next;
        }
        return lenthg;
    }
}

力扣:剑指 Offer II 021. 删除链表的倒数第 n 个结点_第2张图片

你可能感兴趣的:(链表,leetcode,数据结构)