Skip to the content.

从尾到头打印链表


Contact me:

Blog -> https://cugtyt.github.io/blog/index
Email -> cugtyt@qq.com
GitHub -> Cugtyt@GitHub


来自牛客 剑指offer

题目描述

输入一个链表,按链表从尾到头的顺序返回一个ArrayList。

不用递归,可以遍历链表,保存每一个节点,然后翻转

vector<int> printListFromTailToHead(ListNode* head) {
    vector<int> result;
    while (head != NULL) {
        result.push_back(head->val);
        head = head->next;
    }
    if (result.size() > 1) {
        reverse(result.begin(), result.end());
    }
    return result;
}

或者递归:

vector<int> result;
vector<int> printListFromTailToHead(ListNode* head) {
    if (head != NULL) {
        printListFromTailToHead(head->next);
        result.push_back(head->val);
    }
    return result;
}