经典面试题——链表从尾到头打印
2017-04-04 22:50
344 查看
题目:输入一个链表的头结点,从尾到头打印链表的每个节点的值。
链表的节点定义如下:typedef struct ListNode { int data; ListNode * pNext; }ListNode;
看到这里从尾到头打印当然很简单,只需要遍历一遍链表就可以完成。但是是从后往前打印,当然这是单向链表。当然也可以改变指向来解决问题但是会破坏链表的结构,一般不会被允许。
一种思想是我们可以用栈来实现这种顺序,遍历一遍逐渐压栈,最后在从栈里弹出来,就可以实现反转链表。但是要调用stack 里的一些函数。
最后可以用到递归来完成:
void print_list_reverse(ListNode*pHead) { if (NULL != pHead) { if (pHead->pNext != NULL) { print_list_reverse(pHead->pNext);//访问下一个节点 } printf("%d\n", pHead->data); } }
递归本来就是一个栈结构,访问本节点的时候首先访问下一个节点,然后递归从最后一个节点输出。
相关文章推荐
- 剑指Offer面试题5:从尾到头打印链表
- 面试题5:从尾到头打印链表
- 剑指offer 面试题5:从尾到头打印链表 题解
- 面试题5 从尾到头打印链表
- 剑指offfer面试题5:从尾到头打印链表
- 剑指offer面试题5:从尾到头打印链表
- 剑指offer面试题5:从尾到头打印链表
- 面试题:从尾到头打印链表
- 剑指offer面试题5-从尾到头打印链表/6-重建二叉树
- 【剑指Offer】面试题5:从尾到头打印链表
- 剑指offer|面试题5:从尾到头打印链表(Java实现)
- 面试题5:从尾到头打印链表
- 面试题5:从尾到头打印链表
- 面试题5-从尾到头打印链表
- 【剑指offer】面试题 6:从尾到头打印链表
- 【单链表经典面试题解析一】从尾到头打印单链表
- 剑指Offer学习之面试题5 : 从尾到头打印链表
- 面试题五:从尾到头打印链表|剑指offer
- 面试题5:从尾到头打印链表
- 面试题5:从尾到头打印链表