逆置 / 反转单链表
来源:互联网 发布:手机聊天机器人软件 编辑:程序博客网 时间:2024/05/29 17:55
将单链表的反转 也就是把单链表节点的指针反向。
思路:
首先,考虑到单链表只能单一方向访问下一个节点,所以我们先创建指向前一个节点的指针Prev,当然,当前节点
pCurrent 的 下一个节点的位置也要设置创建一个指针PpNext。
然后,思考特殊情况:1、空链表;2、只有一个节点的链表(反转前后不变)
正常情况(节点数>=2):pCurrent指向头结点位置,初始化Prev为空(因为反转后 原来头结点的位置就是
尾节点,尾节点当然指向NULL),PpNext当然指向下一个节点。一直已知循环,每次pCurrent都指向前一个节点
(Prev),然后把节点在通过PpNext移动,直到遇到NULL。
代码如下:
typedef int DataType;typedef struct strNode{struct strNode* pNext;DataType data;}Node;typedef struct strNode* PNode;PNode ReverseNode(PNode pHead)// 逆置 / 反转单链表{PNode PCurrent = NULL;PNode Prev = NULL;PNode PpNext = NULL;if (pHead == NULL||pHead->pNext==NULL){return;}PCurrent = pHead;while (PCurrent != NULL){PpNext = PCurrent->pNext;PCurrent->pNext = Prev;Prev = PCurrent;PCurrent = PpNext;}if (PCurrent == NULL) // 注意把最后一个节点别忘了反转!!{pHead = Prev;return pHead;}}
1 0
- 逆置/反转单链表
- 逆置 / 反转单链表
- 逆置/反转单链表
- 链表--逆置/反转单链表
- 逆置/反转单链表
- 单链表反转
- 单链表反转
- 单链表反转
- 反转单链表
- 单链表反转
- 反转单链表
- 单链表-反转
- 单链表反转
- 单链表反转
- 单链表反转
- 单链表反转
- 单链表反转
- 单链表反转
- java二维码工具类,中间带LOGO的,很强大
- Perfect smooth scrolling in UITableViews
- 存储到SD卡,获取SD的大小及可用空间 (重点)
- Python join()
- linux常用命令
- 逆置 / 反转单链表
- VC
- static的使用
- Python格式化输出
- IOS碰撞动画(降落动画)
- git学习六:git提交忽略不必要的文件或文件夹
- 游戏对象数据存储管理器
- linux分区之fdisk
- 在CentOS或RHEL上安装Nux Dextop仓库