c++声明结构体指针变量提示没有构造函数错误

问题描述

c++声明结构体指针变量提示没有构造函数错误

##在OJ中做题
###题目描述
输入一个链表,从尾到头打印链表每个节点的值。


我的代码:


//  struct ListNode {
//        int val;
//        struct ListNode *next;
//        ListNode(int x) :
//              val(x), next(NULL) {
//        }
//  };

class Solution {
public:
    vector<int> printListFromTailToHead(struct ListNode* head) {
        struct ListNode* p1, p2;
        p1 = head;
        p1->next = NULL;
        p2 = p1->next, p2->next = p1;
        p1 = p2;
        while(p1->next != NULL) {
            p2 = p1->next;
            p2->next = p1;
            p1 = p2;
        }
        //现在p1指向新链表头
        vector<int> out;
        int i = 0;
        while(p1 != NULL) {
            out[i++] = p1->val;
            p1 = p1->next;
        }
    }
};

我想先反转链表再顺序输出,可是结构体变量声明那一行提示没有构造函数错误(去掉结构体定义的注释号提示结构体重复定义,所以我认为结构体在后台已经定义过了)
错误信息:
编译错误:您提交的代码无法完成编译

In file included from main.cc:2:
./solution.h:13:30: error: no matching constructor for initialization of 'struct ListNode'
struct ListNode* p1, p2;
^
../../include/tools.h:115:2: note: candidate constructor not viable: requires single argument 'x', but no arguments were provided
ListNode(int x) :
^
../../include/tools.h:112:8: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 0 were provided
struct ListNode {
^
../../include/tools.h:112:8: note: candidate constructor (the implicit move constructor) not viable: requires 1 argument, but 0 were provided
1 error generated.
提交运行

解决方案

加一个无惨构造函数

 ListNode(){}

解决方案二:

struct ListNode *p1, *p2
就可以了

时间: 2024-09-03 02:27:17

c++声明结构体指针变量提示没有构造函数错误的相关文章

OC中的结构体变量和结构体指针变量的区别

问题描述 OC中的结构体变量和结构体指针变量的区别 OC中的结构体变量和结构体指针变量的区别?,请写出相同点和不同点 解决方案 指向结构体变量的指针指向结构体变量的指针引用结构体变量中的成员结构体中的指针变量输出 解决方案二: 一般来说结构变量定义的时候就分配了内存空间;但结构体指针,和其它指针一样,只有4个字节的指针大小,在使用时需要先动态的分配内存.

c程序设计-C语言截结构体指针中的变量又是另一个结构体指针,怎么用,代码运行不了

问题描述 C语言截结构体指针中的变量又是另一个结构体指针,怎么用,代码运行不了 #include #include #include #include #define LIST_INIT_SIZE 100//线性表存储空间的初始分配量 #define LISTINCREMENT 10//线性表存储空间的分配增量 typedef struct { int No; char name[10]; }Student; typedef struct { Student *elem;//存储空间基址 int

Swift结构体指针操作

在c语言中申明一个变量并通过指针修改该变量的值 int a = 1; int *p = &a; *p = 2; printf("a value is %d\\\\n",a); a value is 2 c语言操作结构体指针操作 申明一个叫User的结构体 typedef struct User{     int ID;     int age; } User; 申明一个结构体User变量user 设置ID值为1 age值为18 User user; user.ID = 1; u

2015.08.21&amp;nbsp;结构体指针

   1. //整形指针指向整型变量的指针    int *p = NULL;//指针的标识,告诉编译器这是个指针变量     int a = 10;     p = &a;        printf("%d\n",*p);//取出指针变量p指向内存中的值   *p = 20;//*向指针变量p指向的内存中存储数据    //浮点型指针:指向浮点型变量指针:   float *p1 = NULL;   float b = 3.14;    p1 = &b;   pri

C++结构体指针声明问题。

问题描述 C++结构体指针声明问题. typedef struct tagMSG { HWND hwnd; UINT message; WPARAM wParam; LPARAM lParam; DWORD time; POINT pt;} MSG *PMSG NEAR *NPMSG FAR *LPMSG;static PMSG pmsg ;pmsg = (PMSG)malloc (cLinesMax * sizeof (MSG)) ; for (i = cLinesMax - 1 ; i >

C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com

原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表本文由 arthinking 发表于315 天前 ⁄ itzhai.com原创文章 ⁄ C语言 ⁄ 评论数 3 ⁄ 被围观 1,775 views+   指针数组: 在一个数组中,如果它的元素全部都是指针

C返回值是结构体指针问题

问题描述 C返回值是结构体指针问题 请问下面这些前面为什么要加struct呢.Halfedge这些是已经定义了的结构体. struct Halfedge **ELhash; struct Halfedge *HEcreate(), *ELleft(), *ELright(), *ELleftbnd(); struct Halfedge *HEcreate(struct Edge *e,int pm); struct Point PQ_min(); struct Halfedge *PQextra

冒泡排序-关于结构体指针问题。什么时候在指针前面加*号,什么时候不加

问题描述 关于结构体指针问题.什么时候在指针前面加*号,什么时候不加 我在做一道对结构体数组,按姓名升序进行冒泡排序的题的时候有些不理解指针什么时候加"*"什么时候不加*. 下面上我的代码. 结构体定义 typedef struct array{ int a; char b; }Array; 为结构体赋值 Stu student[5] = { {"uioyi",'m',95,58}, {"asdf",'m',88,28}, {"cvb&

C语言中结构体参数变量的传递

[文章摘要]        在C语言中,结构体参数变量经常作为函数的参数来进行传递.但如果参数设置不当,会出现内存问题.        本文以实际的程序代码为例,详细地介绍如何正确地使用结构体参数变量,为相关的开发工作提供了参考. [关键词]        C语言  结构体  函数  参数  传递   一.前言        本文中的程序实现对员工信息结构体字段赋值并打印出来的功能.该结构体的定义如下: // 员工信息结构体 typedef struct {        INT8