I dont know why im getting this segfault here. I am trying to take every other node and place it in a new list. Edit: this is what i ended up with but i still get a开发者_Go百科 segfault
template <class T>
List<T> List<T>::mixSplit()
{
List<T> newList;
newList.length=0;
for (int count=0;count<2;count++)
newList.head=newList.head->next;
newList.tail=tail;
newList.head->prev=NULL;
newList.tail->next=NULL;
return newList;
}
On the first iteration of
for (int count=0;count<1;count++)
newList.head=newList.head->next;
...newList.head is NULL...so using newList.head->next is a bad idea.
I'd recommend that you iterate over the current list fairly normally(i.e. current = head; while(current) ...), increment a counter within the loop to track the current position in the list, and whenever the loop counter is even or 0 (counter % 2 == 0 or (counter & 1) == 0) use the standard 'list add' function on your new list to append a new node.
加载中,请稍侯......
精彩评论