题目描述 输入一个链表,按链表从尾到头的顺序返回一个ArrayList。 思路1 从头到尾遍历链表比较简单,遍历链表时,将节点中的元素放入数组,然后将数组逆置即可。 这种方法不改变原来的链表。 思路2 如果能改变链表的话,可以先将链表就地逆置,然后遍历逆置后的链表即可。 ...
分类:
其他好文 时间:
2020-01-08 00:44:03
阅读次数:
102
本文描述了基于线性表的简单算法及其代码【Java实现】 1 1 删除单链表中所有重复元素 第二种方法: 1 2 删除所有数据为x的结点,并返回数量,算法思想与1 1差不多 测试我们的两种算法的结果: 算法1 1: 算法1 2: 2 1 试写一算法,实现顺序表的就地逆置,即利用原表的存储空间将线性表( ...
分类:
编程语言 时间:
2019-11-09 13:53:38
阅读次数:
82
最近在看链表,今天刷到一道链表的反转题,链表反转可以说是基础操作,但是可提供的方案也有很多,简单通过了该题后又学习了一下递归反转,现在把三种方法都公开出来做一个总结。 1.就地逆置 2.单参数的递归逆置 3.双参数的递归逆置 一、就地逆置 方法:头插。 由于这里是不带表头结点的单向链表,所以头插会稍 ...
分类:
其他好文 时间:
2019-09-03 22:36:23
阅读次数:
106
思路:相当于数据结构中的链表就地逆置,可以使用头插法来实现。 代码: class Solution: # 返回从尾部到头部的列表值序列,例如[1,2,3] def printListFromTailToHead(self, listNode): # write code here l = [] he ...
分类:
编程语言 时间:
2019-05-25 15:47:59
阅读次数:
127
题目描述 输入一个N*N的矩阵,将其转置后输出。要求:不得使用任何数组(就地逆置)。 输入描述: 输出描述: 示例1 输入 输出 解决问题思路: 解决矩阵转置一般借助数组保存原矩阵或转置后的矩阵,通过将aij与aji互换或将aij输入到另一个矩阵的aji完成转置。现题目要求不借助矩阵,那么我们可以使 ...
分类:
编程语言 时间:
2019-03-29 10:28:26
阅读次数:
323
写在前面的话:直接从第5章跳到了第7章数据结构的趣题,原因是前面的数学趣题做久了,会觉得稍许疲倦,所以想“变个口味”,以后数学趣题和数据结构混合着练习。 1. 题目要求 编写一个函数,实现顺序表的就地逆置,也就是说利用原表的存储空间,将顺序表(a1,a2,a3,...,an)逆置为(an,an-1, ...
分类:
编程语言 时间:
2019-03-17 22:57:20
阅读次数:
177
问题描述:编写一个单链表的成员函数,实现对带头结点的单链表的就地逆置操作 涉及变量:position:Node型变量,用于存放尚未反转的结点中首结点的位置 temp:用于标记执行反转操作的结点 涉及教材:《数据结构——Java语言描述(第2版)》 清华大学出版社 大致思路: 将头结点的指针域设为空, ...
分类:
其他好文 时间:
2019-01-16 21:37:50
阅读次数:
438
输入一个N*N的矩阵,将其转置后输出。要求:不得使用任何数组(就地逆置)。 输入的第一行包括一个整数N,(1<=N<=100),代表矩阵的维数。 接下来的N行每行有N个整数,分别代表矩阵的元素。 可能有多组测试数据,对于每组数据,将输入的矩阵转置后输出。 ...
分类:
其他好文 时间:
2018-10-01 19:15:13
阅读次数:
157
本题要求实现顺序表的创建和就地逆置操作函数。L是一个顺序表,函数ListCreate_Sq(SqList &L)用于创建一个顺序表,函数ListReverse_Sq(SqList &L)是在不引入辅助数组的前提下将顺序表中的元素进行逆置,如原顺序表元素依次为1,2,3,4,则逆置后为4,3,2,1。 ...
分类:
其他好文 时间:
2018-09-14 21:29:15
阅读次数:
196
Q:设计一个高效的算法,将顺序表的所有元素逆置,要求算法的空间复杂度是O(1); A:此算法复杂度对应王道练习中第一章第二题,算法的主要思想如下: (1)扫描顺序表的前半部分元素,对于L.data[i](i大于等于0小于L.length-1) (2)将其余后半部分对应元素L.data[L.lengt ...
分类:
编程语言 时间:
2018-06-15 22:37:44
阅读次数:
170