关于#链表#的问题,如何将结点以int形式作为返回值?(语言-c++)


#include

using namespace std;

struct ListNode

{

    int val;

    ListNode* next;

    ListNode() : val(0), next(NULL) {}

    ListNode(int x) : val(x), next(NULL) {}

    ListNode(int x, ListNode* next) : val(x), next(next) {}

};

class Solution {

public:

    int middleNode(ListNode* head) {

        ListNode* sum = head;
        int m = 1;
        while (sum != NULL)
        {
            sum = sum->next;
            m++;
        }

        for (int i = 0;i < m / 2;i++)
        {
            head = head->next;
        }
        return head;


    }

};

ListNode* createByTail()

{

    ListNode* head;

    ListNode* p1, * p2;

    int n = 0, num;

    int len;

    cin >> len;

    head = NULL;

    while (n && cin >> num)

    {

        p1 = new ListNode(num);

        n = n + 1;

        if (n == 1)

            head = p1;

        else

            p2->next = p1;

        p2 = p1;

    }

    return head;

}

int main()

{

    ListNode* head = createByTail();

    int result = Solution().middleNode(head);

    cout << result << endl;

    return 0;

}

题目要求是输入一个无头结点的非空链表,返回中间结点,若有两个中间结点,就返回第二个中间结点,但给定的函数是返回int型数据,要如何把结点以int型数据返回

就是返回中间结点的val值就行了啊
return head->val;

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^