【 数据结构(C语言)】线性表

您所在的位置:网站首页 php实现链表反转 【 数据结构(C语言)】线性表

【 数据结构(C语言)】线性表

2023-09-28 01:49| 来源: 网络整理| 查看: 265

方法1:使用3个指针遍历单链表,逐个结点进行反转。

方法2:从第2个节点到第N个节点,依次逐节点插入到第head节点之后(针对有。

法一:逐个结点反转

1)将指针a,b,c依次赋值为连续的三个指针

2)原链表的第一个结点翻转后为最后一个结点,将原链表的第一个结点的next 赋值NULL

 

3)把b->next 赋值为a,改变指针方向; 将b 赋值为 c,a赋值为b,c赋值为c->next ,边界条件:赋值后的a 为空时,L->next = a; 更新新的表头

LinkList ListReverse(LinkList &L) { LinkList a = L->next; LinkList b = a->next; LinkList c = b->next; a->next = NULL; int len = GetLength(L); while (len--) { b->next = a; c = b; b = a; if(!a) { L->next=a; } else c=c->next; } return L; }

法二:依次插入到头结点之后(代码针对有头结点的链表)

如果是没有头结点的链表,从第2个节点到第N个节点,依次逐节点插入到第1个节点(head节点)之后,(N-1)次这样的操作结束之后将第1个节点挪到新表的表尾即可

LinkList ListReverse2(LinkList &L) { int num; for (int i=2; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3