做小程序和做网站哪个好,qq电脑版,网站建设 开票,wordpress多级分类给定一个链表#xff0c;删除链表的倒数第 n 个节点#xff0c;并且返回链表的头结点。
示例#xff1a;
给定一个链表: 1-2-3-4-5, 和 n 2.
当删除了倒数第二个节点后#xff0c;链表变为 1-2-3-5. 说明#xff1a;
给定的 n 保证是有效…给定一个链表删除链表的倒数第 n 个节点并且返回链表的头结点。
示例
给定一个链表: 1-2-3-4-5, 和 n 2.
当删除了倒数第二个节点后链表变为 1-2-3-5. 说明
给定的 n 保证是有效的。
进阶
你能尝试使用一趟扫描实现吗
分析一个指针先走k1次然后和另一个kNode指针一起往后走最后删除kNode.next即可。
注意i判空k链表长度的情况走k1次会空指针
/*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) { val x; }* }*/
class Solution {public ListNode removeNthFromEnd(ListNode head, int n) {ListNode temphead;ListNode kNodehead;while(n--0)temptemp.next;//为了解决删除第一个节点的情况会空指针异常if(tempnull){return head.next;}else{temptemp.next;}while(temp!null){kNodekNode.next;temptemp.next;}kNode.nextkNode.next.next;return head;}
}