zoukankan      html  css  js  c++  java
  • 剑指Offer编程题3——从尾到头打印链表

    题目描述

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

    题目解析

    方法1:建立两个vector,第一个用来存储正向访问的数据,第二个用来反向存储。

    /**
    *  struct ListNode {
    *        int val;
    *        struct ListNode *next;
    *        ListNode(int x) :
    *              val(x), next(NULL) {
    *        }
    *  };
    */
    class Solution {
    public:
        vector<int> printListFromTailToHead(ListNode* head) {
            vector<int> list;
            vector<int> result;
            while(head!=NULL)
            {
                list.push_back(head->val);
                head=head->next;
            }
            for(int i=list.size()-1;i>=0;i--)
                result.push_back(list[i]);
            return result;
        }
    };

    方法2:

    运用递归的方式:当遍历到最后一个再插入:显示超时错误

    /**
    *  struct ListNode {
    *        int val;
    *        struct ListNode *next;
    *        ListNode(int x) :
    *              val(x), next(NULL) {
    *        }
    *  };
    */
    class Solution {
    public:
        vector<int> result;
        vector<int> printListFromTailToHead(ListNode* head) {
            
            while(head!=NULL)
            {
                printListFromTailToHead(head->next);
                result.push_back(head->val);
            }
            return result;
        }
    };
  • 相关阅读:
    vuex最简单、最详细的入门文档
    详解vue生命周期
    Js基础算法题
    Git常用命令
    webpack构建React开发环境
    React快速构建脚手架
    打开页面开始倒计时
    Yahoo前端35条性能优化
    特殊引用类型(string)
    What is in your backpack?
  • 原文地址:https://www.cnblogs.com/wyx501/p/10670480.html
Copyright © 2011-2022 走看看