zoukankan      html  css  js  c++  java
  • 【剑指offer03逆向输出链表】

    题目描述

    输入一个链表,按链表从尾到头的顺序返回一个ArrayList。
     
    先反转链表,再存入vector
    注意链表->next的时候,都判断下此时是否为空,不然很容易越界
    /**
    *  struct ListNode {
    *        int val;
    *        struct ListNode *next;
    *        ListNode(int x) :
    *              val(x), next(NULL) {
    *        }
    *  };
    */
    class Solution {
    public:
        vector<int> printListFromTailToHead(ListNode* head) {
            vector<int> ans;
            if(!head) return ans ;
            if(!head->next){ans.push_back(head->val);return ans;}
            //将链表反置
            ListNode *pre = head ;
            ListNode *t = pre->next;
            ListNode *t_next = t?t->next:nullptr;
            head->next = nullptr;
            while(t){
                t->next = pre ;
                pre = t ;  t = t_next ;  t_next = t_next? t_next->next:nullptr;
            }
            ListNode *tmp = pre ; //现在指向尾
            while(tmp){
                ans.push_back(tmp->val);
                tmp = tmp->next ;
            }
            
            return ans ;
        }
    };
  • 相关阅读:
    Python基础编程常用模块汇总
    博客目录
    网络编程
    python 对象
    python模块和规范开发
    python常用内置函数
    python递归函数和匿名函数
    python装饰器
    python迭代器,生成器,推导式
    python作用域
  • 原文地址:https://www.cnblogs.com/Stephen-Jixing/p/13123959.html
Copyright © 2011-2022 走看看