链表节点交换为什么有些情况下需要交换节点

对于单链表节点交换而言假设茭换A、B两个节点,那么需要交换A与B的next指针以及A、B直接前驱的next指针

         2、当A和B元素相同时,则没有必要交换

         3、A与B有一个节点是头结点,不需要交换

}

链表节点交换交换节点有两种方式:

如定义以下结构体分为数据部分和链表节点交换指针部分

 
交换结点内容,结点顺序不变依然保持原样,则交换两个结点时只交換数据部分,next指针不要动如:交换p1和p3的内容(数据):
交换结点位置,链表节点交换的顺序会发生变化为保持链表节点交换的正常衔接,则要重新设置next的值过程略有复杂,如:交换p1,p3的位置:最终变成:head->p3->p2->p1->p4 ;
 

粗粗看了下这里有个错误:

 
temp是指针,未初始化申请内存的情况下矗接使用会有问题容易引起程序崩溃

}

我想在类外交换两个结点的值 

H在p 嘚前面。交换后在后面了。


}

我要回帖

更多关于 链表节点交换 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信