【链表】

链表逆转(头插法)

#include <bits/stdc++.h>
using namespace std;
struct listnode
{
    int val; //当前结点的值
    listnode *next; //指向下一个结点的指针
    listnode(int x) : val(x), next(NULL) {}  //初始化当前结点值为x,指针为空
};
char c;
int num;


void reversePrintListNode(listnode* head)
{
    listnode *p,*q,*L=new listnode(0);
    L->next=NULL;
    p=head;
    while(p)
    {
        q=new listnode(0);
        q->val=p->val;
        q->next=L->next;
        L->next=q;
        p=p->next;
    }
    L=L->next;
    while(L)
    {
        cout<<L->val<<" ";
        L=L->next;
    }
}

void create_list()
{
    listnode* a=new listnode(0); //创建新元素
    listnode* b=a;//最后的结果b指向a,这样可以获取a所接收的全部元素
    for(int i=1;i<=9;i++)
    {
        cin>>num;
        listnode* newnode = new listnode(num);
        a->next=newnode;
        a=newnode;

    }
//    while ((c = getchar()) != '\n')   //以空格区分各个结点的值
//        {
//            if (c != ' ')
//            {
//                ungetc(c, stdin);  //把不是空格的字符丢回去
//                cin >> num;
//                listnode* newnode = new listnode(0);
//                newnode->val = num;//创建新的结点存放键盘中读入的值
//                newnode->next = NULL;
//                a->next = newnode;//并将其赋值给temp2
//                a = newnode; //此处也可以写成  temp2=temp2->next,使指针指向下一个,以待接收新元素
//            }
//        }
        reversePrintListNode(b->next);
}



int main()
{
    create_list();

    return 0;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值