简直offer之链表的插入和删除

在插入和删除链表的时候一定要注意不要让链表断了,另外要特别注意对头结点的单独考虑

参考剑指offer上第50页删除给定值的结点的代码。得知,要删除一个节点必须知道该节点的前一个节点。书上的代码使用pNode.next 和pNode。next.value来判断的

下面把代码附上,有个问题

public static ListNode deleteNode(ListNode head,int value){
        if(head==null){
            return null;
        }
        ListNode toBeDelete = null;
        if(head.val==value){
            toBeDelete = head;
        }
        else{
            ListNode pHead = head;
            while(pHead.next!=null&&pHead.next.val!=value){
                pHead = pHead.next;
            }
            if(pHead.next!=null&&pHead.next.val==value){
                toBeDelete = pHead.next;
                pHead.next = pHead.next.next;
            }
        }
        if(toBeDelete!=null){
            toBeDelete = null;
        }
        return head;
    }

 

posted @ 2015-05-11 22:32  niuer++  阅读(187)  评论(0编辑  收藏  举报