链表基础之翻转,删除
2017-04-12 10:41
513 查看
翻转链表
给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->nullclass Solution { public: /** * @param head: The first node of linked list. * @return: The new head of reversed linked list. */ ListNode *reverse(ListNode *head) { // write your code here ListNode* pre = NULL; while(head != NULL){ ListNode* temp = head ->next; head ->next = pre; pre = head; head = temp; } return pre; } };
链表删除重复的结点,留下唯一一个相同结点
Given a sorted linked list, delete all duplicates such that each element appear only once.For example,
Given1->1->2, return1->2.
Given1->1->2->3->3, return1->2->3.
class Solution { public: ListNode *deleteDuplicates(ListNode *head) { if (head == NULL) return head; ListNode* pHead = head; while(pHead != NULL){ while(pHead ->next != NULL && pHead ->val == pHead ->next ->val){ pHead ->next = pHead ->next ->next; } pHead = pHead ->next; } return head; } };
删除全部相同的链表结点
这个在牛客上超时了。。。如有看出哪里的问题麻烦指教class Solution { public: ListNode *deleteDuplicates(ListNode *head) { if (head == NULL || head ->next == NULL) return head; ListNode* dummy = new ListNode(0); dummy->next = head; head = dummy; //将头指针前移 while(head ->next != NULL && head ->next ->next != NULL){ if(head ->next ->val == head ->next ->next ->val){//如果两个值相等,记下这个值,删掉所有相同值的结点 int value = head ->next ->val; while(head->next != NULL && head ->val == value){ head ->next = head ->next ->next; } }else{ head = head ->next; } } return dummy ->next; } };
相关文章推荐
- c数据结构——链表添加+删除+翻转
- 基础 链表 2011-7月版本 创建 、删除、插入
- leetcode之链表逆序翻转类-----92/206 逆序 24/25/61/143 按规则翻转 86/234 双指针分治 19/82/83/203 按规则删除
- 翻转数字、大小写转换、斐波那契、整数排序、链表删除、矩阵面积【Python】
- 【程序员面试宝典】数据结构基础一单链表:创建|求长|插入|删除|排序|打印|逆置
- LintCode刷题阶段性总结---链表容易篇(翻转链表,删除链表重复元素,合并两个排序链表等)
- c++基础之插入和删除链表节点
- 程序员面试宝典之数据结构基础----⑥双链表的建立,插入和删除
- 算法Sedgewick第四版-第1章基础-021一双向链表,在遍历时可修改、删除元素
- 单链表的创建,删除,插入,翻转,打印--数组存入单链表,单链表翻转
- C++中链表的创建、输出、节点删除、节点插入、翻转、清空
- 数据结构:单链表(二)之链表节点排序,升序插入数据,删除指定的所有节点,翻转链表操作
- 数据结构基础 - 链表内节点的删除
- C++基础-链表的建立、插入和删除
- LeetCode基础-链表-删除重复结点
- 链表的创建与翻转函数以及删除值为key的元素函数
- 链表的总结(链表排序、翻转、删除节点)
- 单向链表的创建、节点删除、链表输出、翻转(写法参考计蒜客数据结构课程)
- 链表的基础操作总结(链表创建,插入,删除,遍历等等)
- 【程序员面试宝典】数据结构基础二单链表循环链表的操作 建立|插入删除|打印|合并