美文网首页kmp
单链表倒置算法和二叉树的遍历

单链表倒置算法和二叉树的遍历

作者: 赤赤有名 | 来源:发表于2016-05-21 22:30 被阅读223次

    void reverse(list *head)

    {

    list *p, *q;

    p = head->next;//p指向当前正在处理的节点

    q = p->next;//tmp指向尚未被处理的第一个节点

    p->next = NULL;//原单链表第一个节点将成为倒置后最后一个节点

    head->next = p;//插入单链表表头后面

    p = q;//开始处理接下来的节点们

    while(p) {

    q = p->next;

    p->next = head->next;

    head->next = p;

    p = q;

    }

    }

    (头结点不算,从第一个节点开始)

    思想是,遍历整个链表的同时,将正在访问的节点插入到链表头部。

    这样,当遍历结束后,同时完成了链表的倒置。


    方法二:

    LinkList reverse(LinkList L)//单链表的倒置算法

    {

    LNode*p,*q;

    p=L->next;

    L->next=NULL;

    while(p)

    {

    q=p;

    p=p->next;

    q->next=L->next;

    L->next=q;

    }

    returnL;

    }

    算法之二叉树各种遍历 - 落日小屋 - 博客频道 - CSDN.NET

    关于二叉树的几种遍历方法 - 技术为王 - 博客频道 - CSDN.NET

    相关文章

      网友评论

        本文标题:单链表倒置算法和二叉树的遍历

        本文链接:https://www.haomeiwen.com/subject/ccjorttx.html