1.求单链表中间的节点,其中如果单链表的节点个数为偶数n,则节点为n/2-1,当节点个数为奇数时,节点为中间那个节点。

  解法:使用慢指针以及快指针,快指针移动两次,慢指针移动一次,这样可以找到中间节点。

  2.求单链表中的倒数第k个节点,k为合适的值

   解法:使用两个指针,一个指针先移动k次,然后两个指针同时移动,当一个指针移动到链表末尾时,另外一个指针已经移动到单链表的倒数第k个节点处。

  3.实现单链表的反转

  解法:使用三个指针,一个指针指向链表头,一个指针指向链表第一个节点(开始时,并且一直指向),另外一个指针指向需要进行反转的节点。

  4.实现单链表的对折(链表头->链表尾->链表第二个元素->链表倒数第二个元素--->中间元素)

  解法:使用上诉求解链表中间节点的方法将单链表分为前后两部分,然后实现两个链表的插入。

  

posted on 2019-04-08 20:23  醉晚  阅读(472)  评论(0编辑  收藏  举报