19. 删除链表的倒数第 N 个数(链表)
发布于: 刚刚
思路
快慢指针,快指针先走 n 步,然后快慢一起同步。当慢指针 next 为空,则快指针的下一个就是要删除的元素。
复杂度分析
时间复杂度:O(L),其中 L 是链表的长度。
空间复杂度:O(1)。
代码
/** * 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 { public ListNode removeNthFromEnd(ListNode head, int n) { ListNode realHead = new ListNode(0, head); ListNode fast = realHead; ListNode slow = realHead; int i = 0; while(fast != null){ if(i <= n){ fast = fast.next; i++; continue; } fast = fast.next; slow = slow.next; } slow.next = slow.next.next; return realHead.next; }}复制代码
划线
评论
复制
发布于: 刚刚阅读数: 2
黄敏
关注
还未添加个人签名 2019.11.30 加入
还未添加个人简介











评论