[LeetCode-206] Reverse Linked List(链表反转)
2015-09-16 10:54
656 查看
Reverse a singly linked list.
链表反转详细分析
代码如下:
链表反转详细分析
代码如下:
/*无头结点*/ struct ListNode* reverseList(struct ListNode* head) { if((head == NULL) || (head->next==NULL)) //链表为空,或只有一个结点(无需反转),直接返回 return head; struct ListNode *pre = NULL;//前一个 struct ListNode *cur = NULL;//当前 struct ListNode *ne = NULL;//后一个 pre = head; //将前面几个节点的地址依次保存在新定义的结构体指针 cur = head ->next; while(cur) { ne = cur->next; //如果当前节点不为空,则将其指针域赋给ne指针 cur->next = pre; //直接将两个指针的指向反转 pre = cur; //将当前节点赋给pre,将三个指针在链表中的位子都往后移一位 cur = ne; } head->next = NULL;//将原来的第一个节点的指针域赋为空,作为尾节点 head = pre; //将原来的尾节点变成新链表的第一个节点 return head; }
相关文章推荐
- ios 团队开发-UITabbarController整合多个storyboard的controllers
- 本图片处理类功能非常之强大可以实现几乎所有WEB开发中对图像的处理功能都集成了,包括有缩放图像、切割图像、图像类型转换、彩色转黑白、文字水印、图片水印等功能
- JavaScript prototype
- Normal Distribute
- Find a sorted subsequence of size 3 three in linear time
- RabbitMQ java Spring 开发教程
- Timer和TimerTask详解
- mongodb 复杂聚合
- java中date,string,timestamp,时间戳的相互转换大全
- C#导出List数据到xml文件[附源码]
- 多个closure引用同一个变量,并且可能需要mut borrow
- 51nod 1430:奇偶游戏 博弈
- 湖南省第十一届程序设计竞赛总结
- 《C++程序设计案例教程》笔记之多态
- VMware Workstation 11序列号
- Android 性能测试工具- Emmagee
- 设计模式的六大原则
- hibernate查询之Criteria实现子查询(GROOVY语法)
- 异步编程:When.js快速上手
- iOS 崩溃 问题 警告 错误2