从尾到头输出一个链表的几种方法

来源:互联网 发布:飞越长生知乎 编辑:程序博客网 时间:2024/05/04 12:12

输入一个链表,从尾到头打印链表每个节点的值。

利用栈:

    vector<int> printListFromTailToHead(struct ListNode* head) {        vector<int> list;        stack<int> a;         struct ListNode *p = head;        while(p != NULL){            a.push(p->val);            p = p->next;                     }                while(!a.empty()){            list.push_back(a.top());            a.pop();        }        return list;    }

利用递归:

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

最简单:

vector<int> printListFromTailToHead(struct ListNode* head) {        vector<int> v;        while(head != NULL)        {            v.insert(v.begin(),head->val);            head = head->next;        }        return v;    }




0 0
原创粉丝点击