Java教程

剑指offer 06 从尾到头打印链表

本文主要是介绍剑指offer 06 从尾到头打印链表,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

思路:

方法1:
利用栈的先进后出特性,从头遍历链表,开始入栈
到末尾后,开始出栈并放入vector中

class Solution {
public:
    vector<int> reversePrint(ListNode* head) {
        stack<int> temp;

        while(head!=NULL){
            temp.push(head->val);
            head=head->next;
        }

        vector<int> ans;
        while(!temp.empty()){
            ans.push_back(temp.top());
            temp.pop();
        }
        return ans;
    }
};

方法二:从头遍历,直接按顺序放入vector,再使用reverse(res.begin(),res.end());
反转vector,就能达到从尾到头的链表输出

class Solution {
public:
    vector<int> reversePrint(ListNode* head) {

        vector<int> ans;
        while(head!=NULL){
            ans.push_back(head->val);
            head=head->next;
        }
        reverse(ans.begin(),ans.end());
        return ans;
    }
};

前两种方法其实都比较简单,

一般来讲都会要求返回链表,对链表结构进行操作。

这篇关于剑指offer 06 从尾到头打印链表的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!