O(1)刪除連結串列節點
阿新 • • 發佈:2019-02-12
題目
給定單向連結串列的頭指標和某節點指標,定義一個函式在O(1)時間刪除該節點
思路
複製,將待刪除結點的下一個節點資料複製給帶刪除節點,然後刪除待刪除節點的下一個節點,需要考慮待刪除節點為尾節點,或連結串列僅有一個節點
程式碼
void deletedelNode(Node head, Node delNode){
if(null==delNode||null==head)
return;
if(head==delNode)
head=null;
if(null!=delNode.next ){
delNode.value = delNode.next.value;
delNode.next = delNode.next.next;
}else{
Node node1 = head;
while(node1.next.next!=null){
node1 = node1.next;
}
node1.next=null;
}
}