当前位置: 首页 > news >正文

淘宝优惠券 如果做网站seo知识总结

淘宝优惠券 如果做网站,seo知识总结,证书查询网,包装网站模板title: 剑指 Offer 06. 从尾到头打印链表 tags: 链表递归迭代 categories:算法剑指 Offer 题目描述 输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。 示例 1: 输入:head [1,3,2] 输出&#…

title: 剑指 Offer 06. 从尾到头打印链表 tags:

  • 链表
  • 递归
  • 迭代 categories:
  • 算法
  • 剑指 Offer

题目描述

输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。

示例 1:

输入:head = [1,3,2]
输出:[2,3,1]

限制:

$0 <= 链表长度 <= 10000$


算法 1

(迭代) $O(n)$

从前往后遍历链表,存储每个节点的值到答案数组中,然后反转答案数组就是从尾到头打印链表的结果。

时间复杂度

$O(n)$

空间复杂度

$O(n)$

C++ 代码
/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:vector<int> reversePrint(ListNode* head) {vector<int> res;for (auto p = head; p; p = p->next) res.push_back(p->val);reverse(res.begin(), res.end());return res;}
};
Java 代码
/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode(int x) { val = x; }* }*/
class Solution {public int[] reversePrint(ListNode head) {List<Integer> resList = new ArrayList<>();ListNode p = head;while (p != null) {resList.add(p.val);p = p.next;}Collections.reverse(resList);int[] res = new int[resList.size()];for (int i = 0; i < resList.size(); i ++ ) {res[i] = resList.get(i);}return res;}
}
Python 代码
# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = Noneclass Solution:def reversePrint(self, head: ListNode) -> List[int]:res_list = []p = headwhile p:res_list.append(p.val)p = p.nextreturn res_list[::-1]

算法 2

(递归) $O(n)$

递归的出口条件:当前节点为空,返回空数组。 递归逻辑:先递归到最后一个节点,然后从最后一个节点开始将节点值存储到答案数组中,递归函数不断弹栈,最后答案数组中存储的就是从尾到头打印链表的结果。

时间复杂度

$O(n)$

空间复杂度

存储答案的空间 $O(n)$,包含递归系统栈所需的空间 $O(n)$。

C++ 代码
/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:vector<int> res;vector<int> reversePrint(ListNode* head) {if (!head) return {};reversePrint(head->next);res.push_back(head->val);return res;}
};
Java 代码
/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode(int x) { val = x; }* }*/
class Solution {List<Integer> res = new ArrayList<>();public int[] reversePrint(ListNode head) {reverseList(head);int[] result = new int[res.size()];for (int i = 0; i < res.size(); i ++ ) {result[i] = res.get(i);}return result;}private void reverseList(ListNode head) {if (head == null) return;reverseList(head.next);res.add(head.val);}
}
Python 代码
# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = Noneclass Solution:def reversePrint(self, head: ListNode) -> List[int]:self.res = []def reverseList(node):if not node:returnreverseList(node.next)self.res.append(node.val)reverseList(head)return self.res

推荐阅读:

  • https://www.mianshi.online
  • https://www.i9code.cn

    本文由博客一文多发平台 OpenWrite 发布!

http://www.hkea.cn/news/741556/

相关文章:

  • 哪个网站做生鲜配送厦门seo外包公司
  • 水电行业公司设计logo重庆seo排名扣费
  • 可信赖的南昌网站制作站长工具网站
  • 济南建站公司电话成都关键词自然排名
  • 门户网站开发公司推广网页
  • 如何做网站认证实时军事热点
  • 上海的网站建设公司哪家好企业网站建设
  • 专业b2c电商网站制作网站推广要点
  • 现在的网站用什么程序做百度云官网登录入口
  • vs做网站怎样加数据库新闻小学生摘抄
  • 广州做网站mxszpt小说排行榜
  • 有什么网站是python做的网站营销策划公司
  • 长春有什么好的网站制作公司链接购买
  • 毕设网站佛山网站建设十年乐云seo
  • 北京做网站建设的公司哪家好手机怎么创建网站
  • winforms做网站注册百度账号
  • 玉泉路网站建设营销培训课程有哪些
  • 渭南做网站费用搜索引擎排名优化是什么意思
  • 做网站开发需要学什么软件微信公众平台开发
  • 网站整体营销方案网络营销的特点是什么?
  • 国内知名的网站建设公司有哪些百度指数专业版app
  • 画画外包网站如何推广一个网站
  • 互联网公司响应式网站深圳google推广
  • 深圳网站设计哪好什么推广平台比较好
  • 打开英文网站字体不对教程seo推广排名网站
  • 昭通市建设局网站太原百度关键词优化
  • 个人建网站允许吗seo职位要求
  • 环保网站设计网络营销优化推广
  • 网页设计网站制作公司冯耀宗seo视频教程
  • 怎么用路由器做网站百度指数平台官网