数据结构与算法分析笔记与总结(java实现)--链表10:输入某个结点删除单向链表中的该结点

来源:互联网 发布:常用nosql数据库 编辑:程序博客网 时间:2024/06/05 02:19

思路:即给定一个要删除的结点pNode,由于是单向链表,因此只能向下遍历而不能向上遍历,因此只能采取的方法是:对于要删除的结点的后面的结点的值向前进行拷贝传递,即将pNode后面的值赋值给pNode,然后将pNode.next指向pNode.next.next;不需要对后续结点全部向前移动,只要改变这个结点下一个结点的指向即刻。特殊的,如果要删除的结点是尾结点,即pNode.next==null,那么如果直接将pNode③赋值为null,那么其实本质上并不会导致结点③被删除,要将结点③删除必须是的结点②的next指针指向null,而不是直接改变结点③为null。因此对于要删除的结点为尾结点的特殊情况,程序不要求处理,直接返回FALSE即可。

public class Remove {

    publicboolean removeNode(ListNode pNode) {

       if(pNode==null||pNode.next==null)

        {

          //不要写pNode==null;

           return false;

        }

     pNode.val=pNode.next.val;

       pNode=pNode.next;

       return true;

    }

}

1 0
原创粉丝点击