問題描述:
給定乙個鍊錶的頭結點head和乙個整數num,請實現函式將值為num的節點全部刪除。
例如:鍊錶為1->2->3->5->3->6->null,num=3,調整後的鍊錶為: 1->2->5->6->null
演算法實現:
public class node}演算法1:
public node removevalue1(node head, int num)head = head.next;
}while (!stack.isempty())
return head;
}演算法2:
public node removevalue2(node head, int num)演算法解析:head = head.next;
}node pre = head;
node cur = head;
while (cur != null) else
cur = cur.next;
}return head;
}
解法1:
需要乙個額外的棧空間,通過將「有效的資料入棧」,之後在出棧的過程中重新「鏈節點成表」,要注意的是出棧時「head」指向的移動。
解法2:
先通過判斷和必要的移動,找到「最終的頭結點」,設定兩個臨時變數指向head, 通過這兩個變數的移動、賦值、比較判斷,將「最終頭指標」之後待刪除的節點移除掉。
17 在單鏈表中刪除指定值的節點
給定乙個鍊錶的頭節點head和乙個整數num,請實現函式將值為num的節點全部刪除 時間複雜度o n 空間複雜度o n class solution cur cur.next while stack.isempty return cur 時間複雜度o n 空間複雜度o 1 class solutio...
從單向鍊錶中刪除指定值的節點
輸入乙個單向鍊錶和乙個節點的值,從單向鍊錶中刪除等於該值的節點,刪除後如果鍊錶中無節點則返回空指標。鍊錶結點定義如下 struct listnode 詳細描述 本題為考察鍊錶的插入和刪除知識。鍊錶的值不能重複 構造過程,例如 1 2 3 2 5 1 4 5 7 2 最後的鍊錶的順序為 2 7 3 1...
從單向鍊錶中刪除指定值的節點
輸入乙個單向鍊錶和乙個節點的值,從單向鍊錶中刪除等於該值的節點,刪除後如果鍊錶中無節點則返回空指標。鍊錶結點定義如下 struct listnode int m nkey listnode m pnext 詳細描述 本題為考察鍊錶的插入和刪除知識。鍊錶的值不能重複 構造過程,例如 1 2 3 2 5...