如何有效地将链接列表中删除的值存储到堆栈中。存储后,我想对其执行撤消操作,以便将已删除的节点从堆栈中返回到我删除它的链接列表中。
package DataStructure.LinkedListPractise;
import java.util.ArrayList;
import java.util.List;
public class practiseLinkedList {
public static void main(String[] args) {
List newList = new ArrayList();
newList.add(32);
newList.add(388);
newList.add(129);
for (int i = 0; i < newList.size(); i++) {
System.out.println(newList.get(i));
}
newList.remove(1);
System.out.println();
}
}
您可以跟踪已删除的索引和值的另一个列表,然后您可以按顺序重新应用它们:
public static void main(String[] args) {
List newList = new ArrayList();
newList.add(32);
newList.add(388);
newList.add(129);
System.out.println("Full list: " + newList);
List<int[]> history = new ArrayList();
history.add(0, new int[]{1, (int) newList.remove(1)});
System.out.println("Remove: 388 " + newList);
history.add(0, new int[]{0, (int) newList.remove(0)});
System.out.println("Remove: 32 " + newList);
int[] lastItem = history.remove(0);
newList.add(lastItem[0], lastItem[1]);
System.out.println("Return: 32 " + newList);
lastItem = history.remove(0);
newList.add(lastItem[0], lastItem[1]);
System.out.println("Return: 388 " + newList);
}
Full list: [32, 388, 129]
Remove: 388 [32, 129]
Remove: 32 [129]
Return: 32 [32, 129]
Return: 388 [32, 388, 129]