首页 >  教育 >

数据结构考研复试题(数据结构考研复试题及答案)

发布时间:2023-12-07 10:40:28来源:网络转载浏览量:0   

链表反转

此题属于中低难度的题,思路并不复杂,单其中有很多易错点,比如空指针判断、指针丢失等;

思路:设置三个指针pre、cur、next,初始时刻pre = null,cur = head;

开始处理,首先执行next = cur.next,防止后面cur.next修改之后指针丢失;

技术连载:数据结构 - 链表相关的高频面试题汇总

链表反转

环形链表检测并返回入环点

这个题目技巧性很强,一般不太容易想到;大体思路如下:

首先设置快慢指针,每一次移动,快指针移动两步(尤其需要注意第二步判断空指针),慢指针移动移步;然后判断两个指针是否指向同一位置。

如果最终快指针遇见null,则无环;如果快慢指针指向了同一位置,则有环;

如果有环的化,两指针相遇时,快指针移动到head位置,并且变为慢指针(每次移动一步);然后两个指针再次开始移动,直到再次相遇即为入环点。(证明略)

技术连载:数据结构 - 链表相关的高频面试题汇总

环形链表检测

链表归并排序

二路归并排序:假设两个有序数组,设置两个指针,指向0位置,将指向比较小元素的指针对应的元素存入数组,并移动指针;直到两个指针移动完毕;

归并排序思路:归并排序是建立在二路归并排序基础之上,将数组逐渐分解,直到仅有一个元素,然后进行二路归并排序。(先分后合的思想)

伪代码如下:

public int[] merge(int[] nums,int start, int end){

if(start == end){

return new int[]{nums[start]};

}

int mid = (start + end) / 2;

int[] s1 = merge(nums, start,mid);

int[] s2 = merge(nums,mid + 1, end);

return binMerge(s1,s2);

}

链表归并排序比数组归并排序难度有所增加,但思路是一致的,仍然是逐步分解,直到只有一个结点,然后再合并。

主要区别在于中点的选取,关于中点选取,这里也有现成的思路,通过快慢指针,当快指针走到终点时,慢指针即为中点。

具体实现如下:

技术连载:数据结构 - 链表相关的高频面试题汇总

连载系列:

技术连载:开篇词

技术连载:连载提纲设计思路

技术连载:数据结构 - 数组

技术连载:数据结构 - 数组常见面试题汇总

技术连载:数据结构 - 链表

(责编: 康康)

免责声明:本文为转载,非本网原创内容,不代表本网观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。

  • 剑桥申请 研究生?牛津剑桥研究生

    一、怎么考剑桥大学1.充分准备:剑桥大学的录取标准非常严格,因此考生需要充分准备,以确保自己能够达到剑桥大学的要求。2.参加考试:考生需要参加剑桥大学的入学考试,包括UCAS申请,剑桥大学的入学考试,[详细]
  • 华盛顿大学西雅图 研究生(西华盛顿大学)

    一、华盛顿大学西雅图分校研究生录取GPA是多少,我想申请统计专业,或者靠近经济专业的专业,GPA要求是1、TOEFL网考至少92分;IELTS总分至少7分;MLT至少90分;PTE至少65分。2、正规[详细]
  • 化学研究生全国排名?西南科技大学研究生院

    一、化学工程与工艺考研学校排名化学工程与工艺考研学校新排名:清华大学;二、化学专业研究生大学排名化学研究生院校专业排名:1中国科学院大学,2清华大学,3北京大学,4浙江大学,5南开大学,6复旦大学,7[详细]
  • 旧金山大学研究生,旧金山大学分析学硕士

    一、旧金山大学有几个校区旧金山大学(SanFranciscoUniversity)是一所位于美国加利福尼亚州旧金山市的私立大学,该校只有一个校区,位于市内的LoneMountain区,占地面积55英亩[详细]
  • 健康服务与管理研究生?健康管理大专出来有用吗

    一、健康信息与社会服务硕士就业前景1、就业前景很好。我国健康管理行业发展异常迅猛,目前国内已有超过3000家专业的健康管理公司,其中有数家已经获得数千万美元巨额投资。2、健康管理作为一种最具活力的健康[详细]