码迷,mamicode.com
首页 > 其他好文 > 详细

剑指offer——替换空格从尾到头打印链表

时间:2018-11-02 23:31:00      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:subject   offer   ext   一个   替换空格   cto   方法   bsp   while   

题目描述

输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。
方法一:使用vector的insert函数可以在任意位置插入的特性。
/**
*  struct ListNode {
*        int val;
*        struct ListNode *next;
*        ListNode(int x) :
*              val(x), next(NULL) {
*        }
*  };
*/
class Solution {
public:
    vector<int> printListFromTailToHead(ListNode* head) {

        vector<int> result;
         while(head != NULL)
         {
                result.insert(result.begin(),head->val);
                head = head->next;
         }
        return result;
    }
};

方法二:使用堆

class Solution
{
public:
    vector<int> printListFromTailToHead(ListNode* head)
    {
      vector <int>  result;
      stack<int> arr;
      ListNode* p=head;
      while(p!=NULL)
      {
       arr.push(p->val);
       p=p->next;
      }
     int len=arr.size();
     for(int i=0;i<len;i++)
      {
       result.push_back(arr.top());  
       arr.pop();
     }
           return  result;
    }
 
};

方法三:两个vector,倒着取元素

class Solution {
public:
    vector<int> printListFromTailToHead(ListNode* head) {
        
        vector<int> array;
        vector<int> array2;
        ListNode* p;
        p=head;
        while(p!=NULL)
        {
            array.push_back(p->val);
            p=p->next;
        }
        for(int i=0;i<array.size();i++)
            {
                array2.push_back(array[array.size()-i-1]);
            }
        return array2;
    }
};

 

剑指offer——替换空格从尾到头打印链表

标签:subject   offer   ext   一个   替换空格   cto   方法   bsp   while   

原文地址:https://www.cnblogs.com/orenn/p/9898573.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!