[链表] 从尾到头打印链表
描述
输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。
如输入{1,2,3}的链表如下图:
返回一个数组为 [3,2,1]
0 <= 链表长度 <= 1000
示例
输入:
// 输入
{1,2,3}
//返回值
[3,2,1]
// 输入
{67,0,24,58}
// 返回
[58,24,0,67]
代码实现
// 定义节点
type ListNode struct {
Val int
Next *ListNode
}
/**
* 从尾到头打印链表
*
* @param head ListNode类
* @return int整型一维数组
*/
func printListFromTailToHead(head *ListNode) []int {
ret := make([]int, 0)
// 遍历链表
tmp := make([]int, 0)
for head != nil {
tmp = append(tmp, head.Val)
head = head.Next
}
// 遍历数组,倒序处理
tmpLen := len(tmp) - 1
for tmpLen >= 0 {
ret = append(ret, tmp[tmpLen])
tmpLen--
}
return ret
}
思路
先遍历链表一次存入数组中,再倒序处理数组
还不快抢沙发