教你轻松get单链表常见面试题

2017-01-28 17:45 阅读 1,901 次 评论 2 条

删除无头单链表的非尾节点(不能遍历单链表)

分为两种情况:①删除的位置pos为Null,直接返回 ②删除的位置不为空时,实现如下图所示:

在无头单链表非头节点前插入值为data的节点

分为两种情况:①插入的位置pos为Null,直接返回 ②插入的位置不为空时,实现如下图所示:

用单链表实现约瑟夫环

分为两种情况:①链表为空时,直接返回Null ②链表不为空时,实现如下图所示:

逆置单链表(利用三个指针进行逆置)

分为两种情况:①链表为空或者链表中仅有一个节点,直接返回pHead ②链表中有多个节点时,实现如下图所示:

逆置单链表(头插法)

分为两种情况:①链表为空或者链表中仅有一个节点,直接返回pHead ②链表中有多个节点时,实现如下图所示:

对单链表进行冒泡排序(升序)

分为两种情况:①链表为空或者链表中仅有一个节点,直接返回 ②链表中有多个节点时,实现如下图所示:

查找单链表的中间节点(只能遍历一次链表)

①偶数节点,如下图所示:

②奇数节点,如下图所示:

查找单链表的倒数第K个节点(只能遍历一次链表)

分为两种情况:①链表为空或K=0,直接返回Null ②链表有一个或多个结点,并且K>0时,如下图所示

删除单链表倒数第K个节点

删除单链表可以参照上面的查找程序及图例,道理同上。

合并两个有序单链表,合并之后依然有序

分为三种情况:①pHead1为空时,返回pHead2 ②pHead2为空时,返回pHead1 ③当pHead1与pHead2都不为空时,实现如下图所示:

 

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:教你轻松get单链表常见面试题 | 术与道的分享
分类:编程素养 标签:,
1024do.com导航_术与道导航平台

发表评论


表情

  1. 我找博客
    我找博客 【农民】 @回复

    迟来的收录望贵站能接受。支持本站就与我交换友链,和常来哦。我已收录该站了,贴吧的!

    • w3nY@ng
      w3nY@ng 【农民】【站长】 @回复

      嗯可以的