以下代码崩溃了,我不确定为什么。试图计算在下面的链表中找到整数的次数。但是,xcode一直在说主要的int count = 0是否打破了一个线程?
#include <iostream>
using namespace std;
struct Node {
int val;
Node *next;
};
int countNum (Node *head, int key);
Node* cons (int x, Node* p);
int main()
{
Node *head = (1,cons(2,cons(2,(cons(4,(cons(5,nullptr)))))));
int counts=0;
counts= countNum(head,2);
cout<< counts<< head;
return 0;
}
Node* cons (int x, Node* p){
Node *q=new Node;
q->val=x;
q->next=p;
return p;
}
int countNum (Node *head, int key) {
int count=0;
if (head==nullptr)
return 0;
Node *follow=head;
while (follow!=nullptr) {
if(follow->val==key)
count++;
follow=follow->next;
}
cout<<count;
return count;
}
答案 0 :(得分:2)
使用Node * head = cons (1,cons(2,cons(2,(cons(4,(cons(5,nullptr)))))));
答案 1 :(得分:0)
我认为你想要返回一个指向当前节点而不是下一个节点的指针。我也认为你不能这样做:
Node *head = (1, ptrToNextNode);
这样的事可能有用:
struct Node *head = malloc(sizeof (struct Node));
head->value = 1;
head->next = cons(2,cons(2,(cons(4,(cons(5,nullptr))))));
...
Node* cons (int x, Node* p)
{
Node *q=new Node;
q->val=x;
q->next=p;
return q;
}