删除单链表倒数第K个节点
题目:
删除单链表中倒数第K个节点,
思路:
给我们一个单链表,我们需要删除倒数第K个节点,比如链表每个节点值是1、2、3、4、5、6
K值是2,链表的总长度是6,要得倒数第二个数的值,前面就有6-2=4个的值,如果头结点往下移,移到第4个
结点的话,就是我们需要删除的结点,所以这个地方最关的是我们需要得到4,然后4又等于6-2,而6又是我们
链表的长度,我们只需要把链表遍历一遍,把k--,也就是得到了(k-链表的长度)这个数也就是-4,如果是其它
例子,这个(k-链表的长度)==0,说明倒数第K就是第一个节点(注意不是头结点),如果这个(k-链表的长度)
是负数,我们只需要,又从头结点开始往下移,每次K++,当K等于0的时候,我们就删除那个节点,也就是
cur.next=cur.next.next;
K值是2,链表的总长度是6,要得倒数第二个数的值,前面就有6-2=4个的值,如果头结点往下移,移到第4个
结点的话,就是我们需要删除的结点,所以这个地方最关的是我们需要得到4,然后4又等于6-2,而6又是我们
链表的长度,我们只需要把链表遍历一遍,把k--,也就是得到了(k-链表的长度)这个数也就是-4,如果是其它
例子,这个(k-链表的长度)==0,说明倒数第K就是第一个节点(注意不是头结点),如果这个(k-链表的长度)
是负数,我们只需要,又从头结点开始往下移,每次K++,当K等于0的时候,我们就删除那个节点,也就是
cur.next=cur.next.next;
代码实现:
package com.chenyu.zuo.linkedList;
/**题目:删除单链表中倒数第K个节点,* @author Think**/
public class RemoveLastNodeSingleLinked {