面经详情

【前端开发】面试经验分享
  • 题目这其实是一道变形的链表反转题,大致描述如下给定一个单链表的头节点 head,实现一个调整单链表的函数,使得每K个节点之间为一组进行逆序,并且从链表的尾部开始组起,头部剩余节点数量不够一组的不需要逆序。
  • (不能使用队列或者栈作为辅助)例如:解答这道题的难点在于,是从链表的尾部开始组起的,而不是从链表的头部,如果是头部的话,那我们还是比较容易做的,因为你可以遍历链表,每遍历 k 个就拆分为一组来逆序。
  • 但是从尾部的话就不一样了,因为是单链表,不能往后遍历组起。
  • 不过这道题肯定是用递归比较好做先做一道类似的反转题在做这道题之前,我们不仿先来看看如果从头部开始组起的话,应该怎么做呢?
  • 例如:链表:1->2->3->4->5->6->7->8->null, K = 3。调整后:3->2->1->6->5->4->7->8->null。其中 7,8不调整,因为不够一组。
  • 这道题我们可以用递归来实现,假设方法reverseKNode()的功能是将单链表的每K个节点之间逆序(从头部开始组起的哦);reverse()方法的功能是将一个单链表逆序。

相关推荐

进入微信小程序

前往微信小程序,查看更多结果

立即前往
看准网北京数字认证股份有限公司北京数字认证股份有限公司面试经验北京数字认证股份有限公司面试经验:【前端开发】面试经验分享
正在招聘售前咨询顾问(政务方向-北京软件行业)12 个岗位