华不注 2022-05-22 20:30 采纳率: 91.7%
浏览 15
已结题

利用链表逆序打印输入字符

利用链表逆序打印输出字符

请多指教

输入n,表示要输入多少个数
接下来输入这n个数

img

img

  • 写回答

1条回答 默认 最新

  • fortunely2 2022-05-22 21:34
    关注

    你的程序是错误的,第一个for循环里面,每次malloc一个节点,并没有对next域进行赋值,从而把链表节点串起来。到你第二个for循环里面,还没有做空指针判断就直接访问next域,而且直接调用free。

    下面是我在你程序基础上的改进:

    #include <iostream>
    using namespace std;
    
    typedef struct Node {
        int data;
        Node* next;
    
        Node() : data(0), next(nullptr)
        { }
        explicit Node(int data) : data(data), next(nullptr)
        { }
        Node(int data, Node* next) : data(data), next(next)
        { }
    }*LinkList;
    
    int main()
    {
        int n, m;
        Node dummy; // 虚拟头结点
        LinkList head = &dummy;
        Node* p;
    
        cin >> n;
        while (n-- > 0) {
            cin >> m;
            Node* node = new Node(m);
    
            // 每次插入到头结点之后首节点
            p = head->next;
            head->next = node;
            node->next = p;
        }
    
        p = head->next;
        while (p) {
            cout << p->data << ' ';
            Node* next = p->next;
            delete p;
            p = next;
        }
        cout << endl;
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 6月9日
  • 已采纳回答 6月1日
  • 创建了问题 5月22日

悬赏问题

  • ¥15 R语言卸载之后无法重装,显示电脑存在下载某些较大二进制文件行为,怎么办
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?
  • ¥15 关于#vue.js#的问题:修改用户信息功能图片无法回显,数据库中只存了一张图片(相关搜索:字符串)
  • ¥15 texstudio的问题,
  • ¥15 spaceclaim模型变灰色
  • ¥15 求一份华为esight平台V300R009C00SPC200这个型号的api接口文档
  • ¥15 字符串比较代码的漏洞
  • ¥15 欧拉系统opt目录空间使用100%
  • ¥15 ul做导航栏格式不对怎么改?