博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C链表反转(时间复杂度O(n))
阅读量:6249 次
发布时间:2019-06-22

本文共 443 字,大约阅读时间需要 1 分钟。

面试的时候经常会出现的问题,现在都做一遍,回忆一下,练练手.

这个题目需要注意两点:

1.head->next 要先设置为NULL ,否则反转后,它还是指向之前的next节点

2.需要有一个tmp指针,临时保存p->next的地址,这个在改变一个节点的next地址时,经常会用到

示意图

代码实现

 

#include
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->next p->next = head; //图1 反向指向head head = p ; //图2 head 指向p p = tmp; //图2 p指向p->next } return head; }

 

 

你可能感兴趣的文章
RPM 的介绍和应用
查看>>
linux日志轮替
查看>>
12.2总结
查看>>
JavaScript原型(prototype)小记
查看>>
rj-45接口线序
查看>>
【Oracle Database】数据库日志管理
查看>>
在CentOS7上安装MongDB【4.0.0版本】
查看>>
Juniper SRX 240 DY×××用户登录日志
查看>>
入门一班 201801012 管道符
查看>>
Cs6/7笔记01.5、安装Centos6、7
查看>>
开源工具Arena,数据科学家再也不用为Kubernetes犯难啦!
查看>>
JavaScript初学者必看“箭头函数”
查看>>
ffmpeg 使用小记
查看>>
变频电源六大故障及处理方法
查看>>
HBase核心知识点总结
查看>>
朋友圈唯美的心灵鸡汤语录,句句经典入心
查看>>
怎么还原回收站删除的文件?这个操作最实用
查看>>
相机SD卡数据恢复,必知小技巧
查看>>
如何发送和接收 Windows Phone 的磁贴通知
查看>>
配置pxe自动化安装centos系统
查看>>