void ReveseListNodes(ListNode *&node)
{
if (!node || !node->m_next)
return;
ListNode *p = node;
ListNode*pp = p;
ListNode*ppp = NULL;
while (p)
{
pp = p;
p = p->m_next;
pp->m_next = ppp;
ppp = pp;
}
node = pp;
}
void main()
{
int arr[] = { 12, 11, 10, 9 ,8 ,7, 6, 5, 4, 3, 2, 1, 0 };
int *ptr = arr;
ListNode *root = NULL;
createListNode(root,ptr,sizeof(arr)/sizeof(arr[0]));
pressListNodeShow(root);
ReveseListNodes(root);
pressListNodeShow(root);
deleteListNode(root);
system("pause");
本文介绍了一种链表的反转算法,并通过示例展示了如何创建链表、显示链表内容及进行链表反转的过程。该算法使用了三个指针来辅助完成链表节点的反转操作。
1419

被折叠的 条评论
为什么被折叠?



