删除链表倒数第N个节点

前后两个指针,相距N

public class DeleteBackN {
    public void deleteBackN(Node headNode, int N) {
        if (headNode == null || N==0) {
            System.out.println("error: Node is null or N is zero, please check!");
        }else{
            Node nodeBeh = headNode;
            while (N != 0) {
                headNode = headNode.next;
                N--;
            }
            Node nodeBef = headNode;
            while(nodeBef.next!=null){
                nodeBef=nodeBef.next;
                nodeBeh=nodeBeh.next;
            }
            nodeBeh.next=nodeBeh.next.next;
        }
    }
}
View Code
public class DeleteBackN {
public void deleteBackN(Node headNode, int N) {
if (headNode == null || N==0) {
System.out.println("error: Node is null or N is zero, please check!");
}else{
Node nodeBeh = headNode;
while (N != 0) {
headNode = headNode.next;
N--;
}
Node nodeBef = headNode;
while(nodeBef.next!=null){
nodeBef=nodeBef.next;
nodeBeh=nodeBeh.next;
}
nodeBeh.next=nodeBeh.next.next;
}
}
}

猜你喜欢

转载自www.cnblogs.com/zecdllg/p/9768245.html