一周三更 2020-02-11 15:15 采纳率: 0%
浏览 1846

cannot convert 'ListNode*' to 'Solution::ListNode*' in initialization

我在leetcode上面刷一个比较简单的题目,但是出现了这样的问题让我一直解决不了。

#define MAX 100
class Solution {
public:
    bool hasCycle(ListNode *head) {
        int tag[MAX] = {0},i=0;
        ListNode* top = head;
        if(head == NULL) return false;
        else{
            while(top &&tag[i++] == 0)top = top->next;
            if(top == nullptr)
                return false;
            else
                return true;
        }
    }
private:
    struct ListNode{
        int val;
        ListNode *next;
        ListNode(int x) : val(x),next(NULL) {}
    };

};

错误显示 :
solution.cpp: In member function hasCycle
Line 15: Char 25: error: cannot convert 'ListNode*' to 'Solution::ListNode*' in initialization
ListNode* top = head;
^~~~
之前我都是这么使用的,而且编译都过了 请大神解决一下我的困惑。

展开全部

  • 写回答

3条回答 默认 最新

  • threenewbee 2020-02-12 04:27
    关注

    为什么要把
    struct ListNode{
    int val;
    ListNode *next;
    ListNode(int x) : val(x),next(NULL) {}
    写在Solution 类定义里面,很奇怪

    评论
  • EIMadrigal 2022-02-20 15:38
    关注

    老哥解决了吗,我也遇到了同样的问题

    评论
  • EIMadrigal 2022-02-21 00:59
    关注

    private放到public前面,否则编译器不知道ListNode是个啥玩意

    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部