我遇到過類似的問題,如何知道哪個節點在鏈表中被刪除。 例如:有一個鏈接列表,其中包含幾個節點和鏈接列表傳遞給一個 函數,它將刪除一個任意節點並將返回列表..有什麼辦法讓 知道哪個節點被刪除。最好的方法來得知哪個節點在鏈表中被刪除?
根據我的觀點,在傳遞鏈表之前,我們需要維護一個數組,它將全部列出每個節點的地址,並在刪除之後我們需要遍歷並找出哪個節點被刪除。
什麼是最好的方法。
例:
public class GetDeletedNode{
public static void main(String args[]){
LinkedList<String> ll = new LinkedList<String>();
ll.add("a");
ll.add("b");
ll.add("c");
ll.add("d");
ll = deleteArbitaryNode(ll);
//write code to get know which node got deleted.
//
//code goes here
for(String str:ll){
System.out.println(str);
}
}
private static LinkedList<String> deleteArbitaryNode(LinkedList<String> ll) {
//delete arbitary node
Random random = new Random();
ll.remove((int)((long)3*random.nextDouble()+1));
return ll;
}
}
你爲什麼不直接從方法中返回刪除的項目? – 2012-08-13 07:37:26
@JigarJoshi:爲什麼這不是一個答案? – Cratylus 2012-08-13 07:48:23
問題的訣竅就是這樣,任意的刪除方法不會改變,但我們需要在主要方法中弄清楚。根據我的視圖在傳遞鏈表之前,我們需要維護一個數組,列表中每個節點的地址和刪除後,我們需要遍歷並找出哪個節點被刪除。我需要更好的答案? – Bidesi 2012-08-13 08:30:03