/**
* 刪除鏈表的節點
* 給定單項鍊表的頭指針和一個節點指針,定義一個函數在O(1)的時間內刪除該節點
*
* @param node
* @return
*/
public ListNode deleteNode(ListNode head, ListNode node) {
if (null == head || null == node) {
return null;
}
ListNode dummy = new ListNode(-1);
dummy.next = head;
if (node.next != null) {
//刪除的節點是中間節點
int t = node.next.val;
node.val = t;
node.next = node.next.next;
} else {
//刪除的節點是頭節點或者尾節點
ListNode cur = dummy;
while (cur.next != node) {
cur = cur.next;
}
cur.next = cur.next.next;
}
return dummy.next;
}
劍指Offer學習-面試題18:刪除鏈表的節點
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.