19. 删除链表的倒数第N个节点
难度中等1064
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。
示例:
给定一个链表: 1->2->3->4->5, 和 n = 2.
当删除了倒数第二个节点后,链表变为 1->2->3->5.
说明:
给定的 n 保证是有效的。
进阶:
你能尝试使用一趟扫描实现吗?
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val = val; }* ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/class Solution {// 借鉴 orgpublic ListNode removeNthFromEnd(ListNode head, int n) {ListNode dummy=new ListNode(0,head);//ListNode cur=dummy;int length=getLength(head);for(int i=1;i<length+1-n;i++){// 1cur=cur.next;}cur.next=cur.next.next;return dummy.next;//}public int getLength(ListNode head){int i=0;while(head!=null){head=head.next;i++;}return i;}}
