cpp
/*
输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。
*/
#include <bits/stdc++.h>
#include <vector>
using namespace std;
struct ListNode
{
int val;
struct ListNode *next;
ListNode(int x) : val(x), next(NULL)
{
}
};
class Solution
{
public:
vector<int> printListFromTailToHead(ListNode *head)
{
if (head == NULL)
{
return {};
}
ListNode *node = head;
vector<int> myVec;
while (node != NULL)
{
myVec.push_back(node->val);
node = node->next;
}
reverse(myVec.begin(), myVec.end());
return myVec;
}
};
golang
package main
type ListNode struct {
Val int
Next *ListNode
}
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* @param head ListNode类
* @return int整型一维数组
*/
func printListFromTailToHead(head *ListNode) []int {
if head == nil {
return []int{}
}
var slice []int
for head != nil {
slice = append(slice, head.Val)
head = head.Next
}
for i, j := 0, len(slice)-1; i < j; {
slice[i], slice[j] = slice[j], slice[i]
i++
j--
}
return slice
}