非递归:
func printListFromTailToHead( head *ListNode ) []int {
num:=0
p := head
for p!=nil{
num++
p = p.Next
}
p = head
res:=make([]int, num)
for i := num-1;i>=0;i--{
res[i] = p.Val
p = p.Next
}
return res
}
递归:
func printListFromTailToHead( head *ListNode ) []int {
if head == nil{
return []int{}
}
res:=printListFromTailToHead(head.Next)
return append(res, head.Val)
}

这篇博客介绍了两种在Go语言中实现链表逆序输出的方法:非递归和递归。非递归方法通过两次遍历链表,先获取长度再从尾到头构建结果数组;递归方法则通过递归调用,将链表头部元素添加到已逆序的子链表末尾,直至空链表返回。这两种方法都有效地实现了链表的反转输出。
276

被折叠的 条评论
为什么被折叠?



