C链表反转(时间复杂度O(n))
来源:互联网 发布:知乎心理学书籍推荐 编辑:程序博客网 时间:2024/05/21 10:16
面试的时候经常会出现的问题,现在都做一遍,回忆一下,练练手.
这个题目需要注意两点:
1.head->next 要先设置为NULL ,否则反转后,它还是指向之前的next节点
2.需要有一个tmp指针,临时保存p->next的地址,这个在改变一个节点的next地址时,经常会用到
示意图
代码实现
#include<stdio.h> struct ListNode{int data;ListNode *next;} ListNode* reverse(ListNode* head){ListNode *p,*tmp ;p = head->next;head->next=NULL;while(p){tmp = p->next; //图1 保存p->nextp->next = head; //图1 反向指向head head = p ; //图2 head 指向p p = tmp; //图2 p指向p->next }return head; }
- C链表反转(时间复杂度O(n))
- 复制复杂链表O(n)时间复杂度
- 时间复杂度O(n)是什么意思
- 时间复杂度O(f(n))
- 时间复杂度为O(n)的非递归单链表反转【算法导论课后题】
- C++链表划分左边小中间等右边大 时间复杂度O(n) 空间复杂度O(1)
- 时间复杂度O(n),空间复杂度O(1)的排序
- 时间复杂度为O(n),空间复杂度为O(1)
- O(N)时间复杂度、O(1)空间复杂度 构造数组
- 有序链表查找的时间复杂度是O(n)的原因是
- 复杂链表复制——时间复杂度为O(N)
- 合并两个有序链表--实现1+2+3+....+n,时间复杂度为O(1)
- 时间复杂度O(n)什么意思
- 时间复杂度O(n)什么意思
- 时间复杂度为O(n)的排序
- O(n)时间复杂度旋转字符串
- 关于时间复杂度O(N)的思考
- 筛素数 时间复杂度:O(N)
- hibernate结合srping之getHibernateTemplate()的find方法使用
- 我的一些小功能备忘(会逐渐增加的!!)
- matlab basic
- JSON解析-详细
- Tomcat 7.0中使用自定义标签的问题
- C链表反转(时间复杂度O(n))
- 算法导论 4.1-1
- Python正则表达式指南
- error 1044 (42000):access denied for user ''@'localhost' to database 'mysql'错误解决方案
- 得到窗口的句柄方法
- 查找到SQL Server存储过程和函数里的关键词
- android 界面之 listview
- android 调试经验 .
- 如何破解联网收费软件,求高手指点