思路:一般删除链表的节点,通过O(n)遍历到删除链表的前一个节点,然后将前一个节点的next指向删除节点的next,再删除需要删除的节点。
但是,如果删除的节点指针知道,那么,拿到删除节点的下一节点v,将v的值复制到当前删除节点的值,再让当前删除节点的Next指向v的next,这个方法很惊艳
同时需要判断当前删除的是不是头结点和尾节点重合,第二种情况是删除的节点处于尾节点,任就需要遍历到删除节点的前一节点。需要O(n)的时间复杂度.
那么伪代码是
if(不是尾节点){
{ 用v节点的方法}
else if(头节点){
删除头节点 }
else{
遍历到尾节点的前一节点开始删除。
}