zoukankan      html  css  js  c++  java
  • 剑指offer:从头到尾打印链表

    题目

    题目链接
    剑指offer:从头到尾打印链表
    题目描述
    输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。

    解题思路

    首先题目实际给出的要求是返回vector类型的容器,但输入的是结构体组成的链表。题目很简单,也没有什么难点。先遍历链表将元素顺序存入vector,之后在对vector进行操作实现逆序的vector。
    最初自己想法是用第二个vector依次获取第一个vector队尾的元素,但在查询vector资料时发现reverse()实现的容器翻转代码特别优雅,在此特地贴出分享:

    vector<int>::iterator first = array.begin();
    vector<int>::iterator last = array.end();
    while ((first != last) && (first != --last)) {
        iter_swap(first, last);
        ++first;
    }
    

    具体代码

    class Solution {
    public:
        vector<int> printListFromTailToHead(ListNode* head) {
            // 将链表值存入容器
            vector<int> array;
            while (head != NULL) {
                array.push_back(head->val);
                head = head->next;
            }
            // 反转容器
            vector<int>::iterator first = array.begin();
            vector<int>::iterator last = array.end();
            while ((first != last) && (first != --last)) {
                iter_swap(first, last);
                ++first;
            }
            return array;
        }
    };
    
  • 相关阅读:
    cogs 826. Feb11] GF打dota
    cogs 133. [USACO Mar08] 牛跑步 A*k短路算法
    luogu cogs 1437. [NOIP2013]转圈游戏
    RESTful
    中间件
    回顾基础知识,类,fbv,cbv
    Vue
    ES6的一些说明
    小试牛刀2
    小试牛刀
  • 原文地址:https://www.cnblogs.com/Bylight/p/10444917.html
Copyright © 2011-2022 走看看