链表删除倒数第N个节点:(需要理解指针的概念)
/**
* 删除倒数第N个节点
* @param head 源链表
* @param n 倒数第n个节点
* @return
*/
public Node deleteNode(Node head, int n){
Node fast = head;
Node slow = head;
while (fast != null && n > -1){
fast = fast.next;
n--;
}
/** 这个地方需要兼容一下删除头结点的情况 **/
if (fast == null && n > -1) {
return head.next;
}
while (fast != null && slow != null){
fast = fast.next;
slow = slow.next;
}
slow.next = slow.next.next;
return head;
}
版权声明:本文为xupengbo527原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。