交换单链表的任意两个节点

这是一个关于如何在单链表中交换具有特定值的两个节点的实现。首先定义了一个Node结构体和一个Link类,类中包含了创建、反转、打印链表以及检查环的方法。重点在于SwapNode函数,它通过遍历链表找到对应值的节点,并根据它们在链表中的相对位置进行交换。如果两个节点相邻或不相邻,函数都能正确处理。
摘要由CSDN通过智能技术生成
#include  < iostream >

using   namespace  std;
/* link node struct */
struct  Node
{
public:
    Node():val(
0), next(NULL)
    
{

    }

    Node(
int _val,  Node* _next):val(_val), next(_next)
    
{

    }

    friend 
class Link;
private:
    
int val;
    Node 
*next;
}
;

/* link definition */
class  Link
{
public:
    Link(Node 
*_head = NULL):head(_head)
    
{

    }

    
~Link()
    
{
        Node 
*= head, *= head;
        
while (p != NULL)
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值