题目链接:https://leetcode.cn/problems/next-greater-node-in-linked-list/
这里我直接定义两个指针phead和cur使其分别指向head和phead。然后让这两个指针遍历整个链表。
int* nextLargerNodes(struct ListNode* head, int* returnSize) {
int* arr = (int*)malloc(sizeof(int)*10000);
struct ListNode* Phead = head;
struct ListNode* cur = NULL;
int sum =0;
while(Phead)
{
cur = Phead;
while(cur && Phead->val >= cur->val)
{
cur = cur->next;
}
if(cur)
{
arr[sum++] = cur->val;
}
else
{
arr[sum++] = 0;
}
Phead = Phead->next;
}
//这里的returnsize是一个输出型参数,是返回给调用这个函数
*returnSize = sum;
return arr;
}