[链表] 从尾到头打印链表

描述

输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。

如输入{1,2,3}的链表如下图:

image-202107222309.png

返回一个数组为 [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
}
思路

先遍历链表一次存入数组中,再倒序处理数组


本文由 一切随风 创作,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论