Delete a Node in Single Linked List删除单链列表中的节点
[抄题]:
https://practice.geeksforgeeks.org/problems/delete-a-node-in-single-linked-list/1
从前往后,删除第N个
[暴力解法]:
时间分析:
空间分析:
[优化后]:
时间分析:
空间分析:
[奇葩输出条件]:
[奇葩corner case]:
[思维问题]:
[英文数据结构或算法,为什么不用别的数据结构或算法]:
[一句话思路]:
先找到第X - 1位。x - 1的下一位是下下一位,就是说不要x了
[输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入):
[画图]:
[一刷]:
[二刷]:
[三刷]:
[四刷]:
[五刷]:
[五分钟肉眼debug的结果]:
[总结]:
看看相似的题目,说不定会有思路呢
[复杂度]:Time complexity: O(n) Space complexity: O(1)
[算法思想:迭代/递归]:
[关键模板化代码]:
[其他解法]:
[Follow Up]:
[LC给出的题目变变变]:
[代码风格] :
[是否头一次写此类driver funcion的代码] :
[潜台词] :
class GfG { Node deleteNode(Node head, int x) { // Your code here int index = 1; //这道题里面1是特殊情况 if (x == 1) { return head.next; } //先移动到所需的位置,x - 1 while (index < x - 1) { head = head.next; index++; } //x - 1的下一位是下下一位,就是说不要x了 head.next = head.next.next; return head; } }