链表翻转/逆序
2017-03-17 13:45
176 查看
// 链表翻转
// 整个过程即:对开始为第一个的元素(固定,地址不变)之后的元素 断链、头插的过程;
void list_reversal1(linknode *H) // 从第二个元素(第三个节点)开始,依次头插
{
linknode *p = H->next,*q = NULL;
// p-开始时第一个元素的地址 , q- p下一个元素的地址
while(p->next) // 要使用的节点的地址不为空 (NULL)
{
q = p->next; //找到p后面的第一个地址q
p->next = q->next; // 断开 q地址的节点 ,
q->next = H->next; //头插
H->next = q;
//头插
}
}
// 整个过程即:对开始为第一个的元素(固定,地址不变)之后的元素 断链、头插的过程;
void list_reversal1(linknode *H) // 从第二个元素(第三个节点)开始,依次头插
{
linknode *p = H->next,*q = NULL;
// p-开始时第一个元素的地址 , q- p下一个元素的地址
while(p->next) // 要使用的节点的地址不为空 (NULL)
{
q = p->next; //找到p后面的第一个地址q
p->next = q->next; // 断开 q地址的节点 ,
q->next = H->next; //头插
H->next = q;
//头插
}
}
相关文章推荐
- leetcode之链表逆序翻转类-----92/206 逆序 24/25/61/143 按规则翻转 86/234 双指针分治 19/82/83/203 按规则删除
- 单链表逆序,直接翻转指针!!
- 从尾到头打印链表(五种方法包括链表翻转、递归、栈、容器逆序)
- 链表逆序和链表翻转
- 输入k 实现链表每k项都逆序输出
- LeetCode-Reverse Linked List II-翻转链表区间-链表操作
- 二叉树的高度 、销毁、链表的翻转(k为一组、n-m 之间)两种实现、
- 面试题:题目: 链表翻转。给出一个链表和一个数k,比如链表1→2→3→4→5→6,k=2,翻转后2→1→4→3→6→5
- day11之求二叉树的高度+销毁一颗二叉树+链表每K个节点之间逆序
- 链表翻转。给出一个链表和一个数K,按照分组逆置。
- 链表逆序
- 逆序链表
- 翻转链表
- 寒假第二天--线性表-- 数据结构实验之链表二:逆序建立链表
- 不使用额外存储节点的情况下使单链表逆序问题(配图解)
- Reverse Linked List II 翻转链表II
- 翻转链表
- 翻转链表
- 单链表逆序
- 逆序打印链表