交换单向链表的头结点和第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; }
相关文章推荐
- 交换单向链表的相邻节点
- 在单向链表中如何快速查到倒数第n个节点?
- 一道求单向链表倒数第N个结点的算法题。
- 为博客园上一道面试题写的代码-一道求单向链表倒数第N个结点的算法题。
- 建立一个带头结点的的单向链表并输出到out53.dat和屏幕上。各节点的值为对应的下表。链表的节点数及输出地文件名作为参数传入
- 在单向链表中如何快速查到倒数第n个节点 这简直是一种神奇的思路!!!!leetcode 删除倒数第n个节点
- Cracking coding interview(2.2)返回单向链表的倒数第n个节点
- 利用双重指针来实现单向链表的节点交换
- 在单向链表中快速查到倒数第n个节点
- 单向链表相交的第一个公共结点, 判断链表是否有环以及环的入口节点
- 删除单向链表倒数第n个节点
- 03 给定链表头结点, 依次输出从尾节点到头结点的数据
- 两两交换链表中的节点
- 输入一个单向链表,输出该链表中倒数第K个结点
- leetcode-24,交换链表相邻节点,递归实现
- 华为机试——单向链表倒数第k个结点
- 删除链表中倒数第n个节点
- LintCode:交换链表当中两个节点
- 带头节点的链表和不带头结点的链表有何不同
- 微软面试100题之13题:输入一个单向链表,输出该链表中倒数第k 个结点