剑指offer刷题2——链表1(简单)
剑指 Offer 06. 从尾到头打印链表
难度 简单
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。
示例 1:
1 | 输入:head = [1,3,2] |
限制:
1 | 0 <= 链表长度 <= 10000 |
通过次数277,964
提交次数369,505
思路
辅助栈法:
遍历整个链表,把所有元素压入堆栈中,最后把堆栈中的元素顺序弹出并存储到 Vector 容器中返回
算法流程:
入栈: 遍历链表,将各节点值 push 入栈。
出栈: 将各节点值 pop 出栈,存储于Vector并返回。
代码
1 | /** |
递归法:
利用递归: 先走至链表末端,回溯时依次将节点值加入列表 ,这样就可以实现链表值的倒序输出。
递推阶段: 每次传入 head->next ,以 head == null(即走过链表尾部节点)为递归终止条件,此时直接返回。
回溯阶段: 层层回溯时,将当前节点值加入列表,最后返回即可
代码
1 | /** |
评论