博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
剑指offer-从尾到头打印链表
阅读量:4604 次
发布时间:2019-06-09

本文共 1391 字,大约阅读时间需要 4 分钟。

题目要求

输入一个链表,从尾到头放入ArrayList并返回。

C++实现

/***  struct ListNode {*        int val;*        struct ListNode *next;*        ListNode(int x) :*              val(x), next(NULL) {*        }*  };*/class Solution {public:    vector
printListFromTailToHead(ListNode* head) { ListNode *p=head; vector
ArrayList; while(p!=nullptr){ ArrayList.push_back(p->val); p=p->next; } reverse(ArrayList.begin(),ArrayList.end()); return ArrayList; }};

头插vector效率很低,所以采用先push_back,后翻转vector的方式。

同样的思路使用Python实现如下。

Python实现

非递归实现

# class ListNode:#     def __init__(self, x):#         self.val = x#         self.next = Noneclass Solution:    # 返回从尾部到头部的列表值序列,例如[1,2,3]    def printListFromTailToHead(self, listNode):        ArrayList=[]        while listNode is not None:            ArrayList.append(listNode.val)            listNode=listNode.next        ArrayList.reverse()        return ArrayList

递归实现

# -*- coding:utf-8 -*-# class ListNode:#     def __init__(self, x):#         self.val = x#         self.next = Noneclass Solution: # 返回从尾部到头部的列表值序列,例如[1,2,3]     def printListFromTailToHead(self, listNode):         # write code here         if listNode is None:             return []         return self.printListFromTailToHead(listNode.next) + [listNode.val]

转载于:https://www.cnblogs.com/MarkKobs-blog/p/10344500.html

你可能感兴趣的文章
How to Notify Command to evaluate in mvvmlight
查看>>
33. Search in Rotated Sorted Array
查看>>
461. Hamming Distance
查看>>
Python垃圾回收机制详解
查看>>
jquery 编程的最佳实践
查看>>
MeetMe
查看>>
IP报文格式及各字段意义
查看>>
(转载)rabbitmq与springboot的安装与集成
查看>>
C2. Power Transmission (Hard Edition)(线段相交)
查看>>
STM32F0使用LL库实现SHT70通讯
查看>>
Atitit. Xss 漏洞的原理and应用xss木马
查看>>
MySQL源码 数据结构array
查看>>
(文件过多时)删除目录下全部文件
查看>>
T-SQL函数总结
查看>>
python 序列:列表
查看>>
web移动端
查看>>
pythonchallenge闯关 第13题
查看>>
linux上很方便的上传下载文件工具rz和sz使用介绍
查看>>
React之特点及常见用法
查看>>
【WEB前端经验之谈】时间一年半,或沉淀、或从零开始。
查看>>