我正在尝试通过节点结构(年龄)中的 int 值重新排序我的 DLL。当我直接访问 int 时它可以工作,但我试图交换整个节点,这样当列表重新排序时我就不必交换结构中的每个变量。
void DLL::ReOrg(node* head, int DLL_Size)
{
node* temp = head;
int holder;
for(int j = 0; j < DLL_Size; j++)
{
while(temp != NULL)
{
if (temp->next != NULL && (temp->age < temp->next->age) )
{
holder = temp->age;
temp->age = temp->next->age;
temp->next->age = holder;
}
else
temp = temp->next;//increment node
}
temp = head;
}
}
这有效,但是当我尝试做类似的事情时:
node* holder;
...
holder = temp;
temp = temp->next;
temp->next = holder;
我的程序将编译并运行一个空白屏幕。任何指导将不胜感激。我猜交换我所有的变量会更容易(没有很多),但我想让我的代码更干净。谢谢。