C++删除单链表值为K的结点空间复杂度O(1)
来源:互联网 发布:淘宝扣除保证金的规则 编辑:程序博客网 时间:2024/05/29 07:52
#include <iostream>struct Node {int value;Node *next;Node(int data) : value(data), next(nullptr) {};};void print(Node * head);Node * delKValueNode(Node * head, int k);int main(){Node n1(1);Node n2(2);Node n3(3);Node n4(1);Node n5(9);Node n6(1);Node n7(2);Node n8(7);n1.next = &n2;n2.next = &n3;n3.next = &n4;n4.next = &n5;n5.next = &n6;n6.next = &n7;n7.next = &n8;print(delKValueNode(&n1, 7));system("pause");return 0;}void print(Node *head)//打印函数{Node *cur = head;while (cur != nullptr){std::cout << cur->value << std::endl;cur = cur->next;}}Node * delKValueNode(Node * head, int k)//删除值为k的结点{if (head == nullptr){return head;}Node *cur = head, *newHead = nullptr;while (cur != nullptr)//寻找新的头结点{if (cur->value != k){newHead = cur;break;}cur = cur = cur->next;}cur = newHead;Node *pre = newHead;while (cur != nullptr)//删除操作{if (cur->value == k){pre->next = cur->next;cur = pre->next;}else{pre = cur;cur = cur->next;}}return newHead;}
阅读全文
0 0
- C++删除单链表值为K的结点空间复杂度O(1)
- C++将单链表的每K个结点之间逆序改进版空间复杂度O(1)
- 时间复杂度为O(1)的删除链表结点方法
- (C#)实现时间复杂度为O(n)空间复杂度为O(1)的数组中奇偶数分离
- 链表(8)----删除链表的第K个节点,时间复杂度为O(1)
- 字符串移动k位的时间复杂度o(n)空间复杂度o(1)的解法
- 删除线性表中所有值为x的元素,要求时间复杂度为O(n),空间复杂度为O(1)
- 数据结构之 删除顺序表中所有元素为X 的元素,要求时间复杂度为O(n),空间复杂度为O(1)
- 时间复杂度为O(n),空间复杂度为O(1)
- 一个时间复杂度为O(n),空间复杂度为O(1)的排序算法
- 排序的时间复杂度为O(n),空间复杂度为O(1)
- 时间复杂度为O(N),空间复杂度为O(1)的排序算法
- 算法导论12.2-8 从任意结点使用后继函数k次的时间复杂度为O(k+h)
- 算法导论12.2-8 从任意结点使用后继函数k次的时间复杂度为O(k+h)
- 算法题14 删除链表结点(时间复杂度为O(1)))
- 删除链表结点(时间复杂度为O(1)))
- 每天一道算法题2 删除链表结点(时间复杂度为O(1)))
- mtk笔试题-----快速删除单链表中一个结点。时间复杂度为o(1)
- 几个调度器参数说明:
- laravel下使用memcached
- Android Gradle Plugin获取依赖API详解
- Andriod开发技巧——Fragment的懒加载
- kafka分区及副本在broker的分配
- C++删除单链表值为K的结点空间复杂度O(1)
- 帆布指纹识别
- RegularExpressionMatching
- springMvc校验(12)
- R语言绘制箱体图举例图文版
- oracle只修改年份
- Runtime的使用3 【字典转模型】
- oracle exp导出部分表和部分数据
- kafka存储机制