面试题13—在O(1)时间删除链表结点
来源:互联网 发布:java是后端吗 编辑:程序博客网 时间:2024/06/03 20:50
题目:给定单链表的头指针和一个结点指针,在O(1)时间删除该结点。
代码示例:
#include<iostream>using namespace std;template < typename T >struct Node{T data;Node *next;};template < typename T >class LinkList{Node<T> *head;public:LinkList(){head = new Node<T>();head->next = NULL;}~LinkList();void CreateList(T a[], int n);void Disp(void);void DeleteOneNode(Node<T> *node);Node<T> *GetOneNode(int index);//得到编号为index的结点};template<typename T>LinkList<T>::~LinkList(){Node<T> *pre = head;Node<T> *p = head->next;while (p){delete pre;pre = p;p = p->next;}delete pre;}template<typename T>void LinkList<T>::CreateList(T a[], int n){Node<T> *p = head;for (int i = 0; i < n; i++){Node<T> *q = new Node<T>();q->data = a[i];p->next = q;p = q;}p->next = NULL;}template<typename T>void LinkList<T>::Disp(){Node<T> *p = head->next;while (p != NULL){cout << p->data << " ";p = p->next;}cout << endl;}template<typename T>void LinkList<T>::DeleteOneNode(Node<T> *node){//===if (head->next == NULL)return;//===if (node->next == NULL){Node<T> *p = head;while (p->next != node)p = p->next;delete node;p->next = NULL;return;}//===Node<T> *p = node->next;node->data = p->data;node->next = p->next;delete p;}template<typename T>Node<T> *LinkList<T>::GetOneNode(int index){Node<T> *p = head;if (index == 0)return p;for (int i = 0; i < index; i++){p = p->next;}return p;}void main(){const int n = 3;int a[n] = { 5,6,9 };LinkList<int> list;list.CreateList(a, n);list.Disp();//===int index = 1;Node<int>*p = list.GetOneNode(index);list.DeleteOneNode(p);list.Disp();}
阅读全文
0 0
- 面试题13—在O(1)时间删除链表结点
- 剑指Offer:面试题13——在O(1)时间删除链表结点
- 剑指offer——面试题13:在O(1)时间删除链表结点
- 【剑指Offer学习】【面试题13 :在O(1)时间删除链表结点】
- 【面试题13】在O(1)时间删除链表结点
- 剑指offer 面试题13:在O(1)时间删除链表结点(C++版)
- 剑指offer-面试题 13:在 O( 1)时间删除链表结点
- 剑指offer--面试题13:在O(1)时间删除链表结点
- 剑指Offer学习之面试题13 :在O(1)时间删除链表结点
- 面试题13:在O(1)时间删除链表结点
- 面试题13:在O(1)时间删除单链表结点
- 面试题13:在O(1)时间删除链表结点
- [剑指offer][面试题13]在O(1)时间删除链表结点
- 面试题13 在o(1)时间删除链表的给定结点
- 面试题13:在O(1)时间删除链表结点
- 面试题13-在o(1)时间删除链表结点
- 《剑指Offer》面试题13:在O(1)时间删除链表结点
- 《剑指Offer》学习笔记--面试题13:在O(1)时间删除链表结点
- Failed to load resource: the server responded with a status of 500 (Internal Server Error)
- 设置按钮的contentMode, 让其图片居中填充显示
- Codeforces 821 A. Okabe and Future Gadget Laboratory
- EffectiveJava心得一
- CentOS 7 新增加的systemctl 的用法和功能
- 面试题13—在O(1)时间删除链表结点
- 百年双星转型路,慧聚SRM助成功
- 贪心算法之钱币找零问题
- Spark自定义RDD重分区
- 10X 程序员应该具备哪些素质
- 关于Java Web开发出现乱码的原因总结
- 九度oj-1067-n的阶乘
- Eclipse Mars2在线安装svn详细步骤
- Runloop加载大图