非递归方法:
//从尾到头输出链表
int ListReverse(ListNode *head){
stack<int> stack;
ListNode *p;
p = head->next;
//遍历链表,把每个节点数值添加到栈中
while(p != NULL){
stack.push(p->value);
p = p->next;
}
//输出栈
while(!stack.empty()){
printf("%d\n",stack.top());
stack.pop();
}
return 0;
}
递归方法:
void PrintListReversingly_Recursively(ListNode *pHead)
{
if(pHead!=NULL)
{
if(pHead->m_pNext!=NULL)
{
PrintListReversingly_Recursively(pHead->m_pNext);
} printf("%d\t",pHead->m_nValue);
}
}