您的位置:首页 > 其它

【20】从尾到头打印链表

2014-06-03 19:37 169 查看
题目:输入一个链表的头结点,从尾到头反过来打印出每个结点的值

方案一:通常遍历链表是从头开始一个一个的遍历,所以如果要反过来打印链表,可以借助栈来实现
方案二:栈实现的方法就是递归,所以也可以用来递归来实现

//链表的结点
struct ListNode{
int value;
ListNode *nextNode;
};

//栈实现从尾到头输出
void PrintListReverse(ListNode *headNode){
if(headNode == NULL){
return;
}
//栈
stack<ListNode*> stk;
ListNode *tmpNode = headNode;
while(tmpNode != NULL){
stk.push(tmpNode);
tmpNode = tmpNode->nextNode;
}
//输出
while(!stk.empty()){
ListNode *topNode = stk.top();
cout<<topNode->value<<endl;
stk.pop();
}
}

//用递归来实现从尾到头输出
void PrintListReverse(ListNode *headNode){
if(headNode == NULL){
return;
}
PrintListReverse(headNode->nextNode);
cout<<headNode->value<<endl;
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: