数据结构复习链表的倒置(头插法倒置)

Posted awcxv

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构复习链表的倒置(头插法倒置)相关的知识,希望对你有一定的参考价值。

#include <bits/stdc++.h>
using namespace std;
typedef int ElemType;
struct LNode
    ElemType data;
    LNode *next;
;
LNode *head,*tail;

void init()
    head = (LNode*)malloc(sizeof(LNode));
    head->next = NULL;
    tail = head;


void input_data()
    int x;
    cin >> x;
    while (x!=-1)
        LNode *temp = (LNode*)malloc(sizeof(LNode));
        temp->data = x;
        temp->next = NULL;
        tail->next = temp;
        tail = temp;
        cin >> x;
    


//关键函数
void _reverse()
    LNode *p = head->next;
    head->next = NULL;
    while (p)
        LNode *temp = p->next;//记录下当前遍历到的这个节点的下一个
        p->next = head->next;//这个几点的下一个节点接在头结点后面的那个节点
        head->next = p;//头结点的后一个节点指向该节点,从而完成插入过程
        p = temp;
    


void print()
    LNode *temp = head->next;
    while (temp)
        cout<<temp->data<<" ";
        temp = temp->next;
    


int main()
    init();
    //freopen("D://rush.txt","r",stdin);
    input_data();
    _reverse();
    print();
    fclose(stdin);
    return 0;

  

以上是关于数据结构复习链表的倒置(头插法倒置)的主要内容,如果未能解决你的问题,请参考以下文章

C实现头插法和尾插法来构建链表

C实现头插法和尾插法来构建单链表(不带头结点)

单链表的头插法与尾插法代码实现及详解

头插法链表的基本操作:创建空链表,插入结点,遍历链表,求链表长度,查找结点,删除结点

博客作业03--栈和队列

leetcode-2 两数相加(链表的头插法尾插法两个不同长度链表相加减操作的处理方法)