链表习题-寻找单链表中数据域大小为k的结点,并与前一结点交换,如果前一结点存在的情况下

Posted kbryant

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了链表习题-寻找单链表中数据域大小为k的结点,并与前一结点交换,如果前一结点存在的情况下相关的知识,希望对你有一定的参考价值。

 1 /*寻找单链表中数据域大小为k的结点,并与前一结点交换,如果前一结点存在的情况下*/
 2 /*
 3     算法思想:定义两个指针,pre指向前驱结点,p指向当前结点,当p->data == k的时候,交换
 4     pre->data和p->data
 5 */
 6 void SwapData(LinkList& L, int k)
 7 {
 8     LNode *pre = L, *p = L->next;
 9     int temp;
10     while (p)
11     {
12         if (p->data == k)
13         {
14             temp = p->data;
15             p->data = pre->data;
16             pre->data = temp;
17         }
18         pre = p;
19         p = p->next;
20     }
21 }

 

以上是关于链表习题-寻找单链表中数据域大小为k的结点,并与前一结点交换,如果前一结点存在的情况下的主要内容,如果未能解决你的问题,请参考以下文章

算法习题---线性表之单链表的查找

习题11-8 单链表结点删除 (20分)

[PTA]习题11-8 单链表结点删除

AcWing32:链表中倒数第k个节点

AcWing32:链表中倒数第k个节点

[算法]在单链表和双链表中删除倒数第k个结点