链表反转:
数据结构如下:
typedef struct _Node
{
int data;
struct _Node *next;
} Node;
完成函数 Node *Reverse(Node *head),head为不带头节点的链表的首部。
Node *Reverse(Node *head)
{
Node *tmp = NULL; // 缓冲变量
Node *newHead = NULL; // 反转后的新头节点
if ( head==NULL ) return head; // 空链表的情况
if ( head->next==NULL ) return head; // 链表只有一个节点的情况
while ( head ) // 判断有没有移动到最后
{
tmp=head->next; // 临时记录下一个节点
head->next = newHead; // 把原来链表中的节点放到新的链表的首部
newHead = head;
head = tmp;
} // end of while
return newHead;
} // end of Reverse
链表反转:
最新推荐文章于 2024-11-09 20:33:34 发布