链表中删除倒数第N个节点

  • Post author:
  • Post category:其他


链表删除倒数第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 版权协议,转载请附上原文出处链接和本声明。