C++程序 在给定位置删除链表节点
给定一个单向链表和一个位置,在给定位置上删除链表节点。
例子:
输入:位置=1,链表=8->2->3->1->7
输出:链表=8->3->1->7
输入:位置=0,链表=8->2->3->1->7
输出:链表=2->3->1->7
如果要删除的节点是根节点,直接删除它。要删除中间的节点,我们必须有一个指向要删除的节点之前的节点的指针。因此,如果位置不是零,我们运行循环位置-1次并得到指向前一个节点的指针。
下面是上面想法的实现。
输出:
时间复杂度: O(n),其中n表示给定链表的长度。
辅助空间: O(1),不需要额外的空间,因此是一个常数。