• 从尾到头打印链表


    题目描述

    输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
    1.使用栈:
    将原先的链表压入栈,然后从栈返回给value容器.
    class Solution {
    public:
        vector<int> printListFromTailToHead(ListNode* head) {
           vector<int> value;
           stack<int> sta;
            while(head!=NULL){
                sta.push(head->val);
                head=head->next;
            }
            while(!sta.empty()){
                value.push_back(sta.top());
                sta.pop();
            }
            return value;
        }
    };

    2.使用递归

    递归(归的时候),返回数值给value,然后进入容器。

    class Solution {
    public:
        vector<int> printListFromTailToHead(ListNode* head) {
            vector<int> value;
            if(head!=NULL){
                if(head->next!=NULL){
                    value=printListFromTailToHead(head->next);
                }
                 value.push_back(head->val);
            }
            return value;
        }
    };

    3.反向迭代器(       rbegin() 和rend()      )

    class Solution {
    public:
        vector<int> printListFromTailToHead(ListNode* head) {
            vector<int> value;
            while(head!=NULL){
                value.push_back(head->val);
                head=head->next;
            }
            
            return vector<int>(value.rbegin(),value.rend());
        }
    };

    c.begin() 返回一个迭代器,它指向容器c的第一个元素

    c.end() 返回一个迭代器,它指向容器c的最后一个元素的下一个位置

    c.rbegin() 返回一个逆序迭代器,它指向容器c的最后一个元素

    c.rend() 返回一个逆序迭代器,它指向容器c的第一个元素前面的位置

    tianjiale菜鸟名企梦
  • 相关阅读:
    Android TextView中实现点击文本超链接(无下划线)的封装类
    first day for new job
    配置Log4j(非常具体)
    验证数字的正则表达式集
    虚拟化知识点
    Java实现第十届蓝桥杯数的分解
    Java实现第十届蓝桥杯数的分解
    Java实现第十届蓝桥杯数的分解
    Java实现第十届蓝桥杯数列求值
    Java实现第十届蓝桥杯数列求值
  • 原文地址:https://www.cnblogs.com/tianjiale/p/10732232.html
Copyright © 2020-2023  润新知