在插入和删除链表的时候一定要注意不要让链表断了,另外要特别注意对头结点的单独考虑
参考剑指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; }
时间: 2024-09-30 16:01:06