双向链表结构定义如下:
struct ListNode
{
ListNode* pre;
int data;
ListNode* next;
};
现要实现输入一个双向链表头指针,反转链表,并返回反转后的头指针。链表节点如下图,关键代码如下:
ListNode* reverse(ListNode* head)
{
ListNode *pnode=head,*pre=NULL; //pnode指向当前节点,pre指向前一节点
while (pnode) //当pnode!=null时,开始反转
{
ListNode* pnext&#