V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kirara
V2EX  ›  程序员

C 语言链表中的两个不相邻的节点怎么交换?

  •  
  •   kirara · 2019-12-01 23:45:19 +08:00 via Android · 2157 次点击
    这是一个创建于 1823 天前的主题,其中的信息可能已经有所发展或是发生改变。
    不要数据交换,是直接交换节点。
    给出代码,急,拜托了大佬 QAQ
    mason961125
        1
    mason961125  
       2019-12-01 23:47:50 +08:00
    自己作业自己做。
    kirara
        2
    kirara  
    OP
       2019-12-01 23:56:05 +08:00 via Android
    @mason961125 不会
    Kbyte
        3
    Kbyte  
       2019-12-02 00:03:41 +08:00
    A->B->C->D->E,交换 B 和 D,就把 A 的后节点换成 D,D 的后节点换成 C,C 的后节点换成 B,B 的后节点换成 E
    registerrr
        4
    registerrr  
       2019-12-02 00:08:03 +08:00 via Android
    把指向 a 节点的指针指向 b 节点,然后把 a 指针指向的节点换成 b 指针指向的节点,
    同样的把指向 b 节点的指针指向 a 节点,然后把 b 指针指向的节点换成原来 a 指针指向的节点啊
    registerrr
        5
    registerrr  
       2019-12-02 00:11:36 +08:00 via Android
    @registerrr 说白了就是修改节点本身的指向和其前一个节点的指向。如果是双向链表的话,该节点前后节点的指向和其本身的指向都要考虑。
    Trim21
        6
    Trim21  
       2019-12-02 00:11:57 +08:00 via Android
    你总会删除节点和插入节点吧
    你先把两个节点从链表上删除,然后分别在之前的节点位置上插入另一个节点
    winterbells
        7
    winterbells  
       2019-12-02 00:16:30 +08:00 via Android
    修改节点指向
    翻翻数据结构那本书
    pocarisweat
        8
    pocarisweat  
       2019-12-02 00:18:43 +08:00
    你画个图,就明白了。还不明白的话,那就是对指针这个概念理解有模糊。
    canyue7897
        9
    canyue7897  
       2019-12-02 06:57:58 +08:00
    这个在链表里面的任何一本教材上面都会有.同楼上的,就是指向下一个的断开,然后指向需要插入的。。。其实链表需要处理的就是第一个,中间的任意一个和最后一个。
    yingqi7
        10
    yingqi7  
       2019-12-02 07:15:56 +08:00 via iPhone
    @kirara 不会就先回去理解指针,弄不懂指针这个题下一次还不会做
    HarryHook
        11
    HarryHook  
       2019-12-02 11:25:30 +08:00
    找到要交换的结点的 pre 结点, 然后 swap
    zivyou
        12
    zivyou  
       2019-12-02 13:47:53 +08:00
    单链表的所有问题,在表头再加一个自己的头就会好解很多,你再试一下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1027 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 20:25 · PVG 04:25 · LAX 12:25 · JFK 15:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.