
力扣学习笔记——19. 删除链表的倒数第 N 个结点
解题思路
参考幻灯片,点击后可以使用键盘上下键↕控制:
动图版:
实现代码
class Solution {
public ListNode removeNthFromEnd(ListNode head, int n) {
ListNode prev = head;
int len = length(head);
if (len - n == 0) return head.next;
for (int i = 0; i < len - n - 1; i++) prev = prev.next;
prev.next = prev.next.next;
return head;
}
public int length(ListNode node) {
int count = 0;
while (node != null) {
node = node.next;
count++;
}
return count;
}
}
复杂度分析
时间复杂度:
O(N)
遍历了数组长度
空间复杂度:
O(1)
没有消耗空间
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 zxb
评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果