您的位置:首页 > 其它

交换单向链表的头结点和第n个节点

2013-10-03 13:54 274 查看
void swapNth(Node **head, int n)
{
if (head == NULL
|| *head == NULL
|| n == 1)
{
return;
}

int count = 0;
Node *prev = *head;
while (prev && count < n-2)
{
prev = prev->next;
count++;
}
if (prev == NULL)
{
return;
}

Node *p = prev->next;
if (p == NULL)
{
return;
}

Node *next = p->next;
p->next = (*head)->next;
(*head)->next = next;
prev->next = *head;
*head = p;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: