反转链表
主要考察指针的操作,也没什么好说的,直接上代码:
ListNode * ReverseList(ListNode* pHead) { if( pHead == NULL) return NULL; ListNode* pReversedHead = NULL; ListNode* pNode = pHead; ListNode* pPrev = NULL; while( pNode !=NULL ) //注意这里是判断的停止的条件 { ListNode* pNext = pNode->pNext; //存储当前节点的后一个节点 if( pNext == NULL) pReversedHead = pNode; //一下赋值顺序不能搞错 pNode->pNext = pPrev; //改变当前指针所指向的下一个指针,指向前一个节点 pPrev = pNode;//指向前一个节点的指针向后移动 pNode = pNext;//把当前指针指向原来的后一个节点,这就是为什么要创建一个pNext的原因 } return pReversedHead; }

浙公网安备 33010602011771号