交换单链表结点的算法

  • 2017-10-09 20:21:08
  • 3,501 次阅读
  • 稿源:天马行空

单链表交换结点的操作是比较常见的算法之一,掌握这类比较难点的算法对学习数据结构的其它链表算法的操作或多或少有帮助。下面是单链表中交换指针p所指结点和其后继结点在链表中位置的算法,同时做了图片为了更方便理解算法的执行过程。单链表交换结点C++算法如下:
template <class T>
int LinkList : :Exchange (Node<T> *head,Node *p)

{

if(p->next==NULL) return 0;
Node<T> *q=head;
while (p->next!=p)

{

q=q->next;
r=p->next;
q->next=r;
p->next=r->next;
r->next=p;

}

return 1;

}

①单链表交换结点图例:

LNodExchange1

②单链表结点交换最终结果展示图:

LNodeExchange2

喜欢 0

文章评论 (1)

  1. 尚吾康网说道:

    博客不错,大爱哦!

    [1楼]网友 Windows 7 | 搜狗浏览器 2.X   

表情

大眼 可爱 大笑 坏笑 害羞 发怒 折磨 快哭了 大哭 白眼 晕 流汗 困 腼腆 惊讶 憨笑 色 得意 骷髅 囧 睡觉 眨眼 亲亲 疑问 闭嘴 难过 淡定 抗议 鄙视 猪头