在以下函数中,我想要反转链表,但我想知道我可以在哪里删除节点?
LinkedList reverse(LinkedList l){
LinkedList res;
while(l.getHead()){
Node * node = new Node(l.getHead()->item); /*create a new node with item
of current head of l*/
node->next = res.getHead();/*set the next pointer of node to current head
of res*/
res.setHead(node); /*set node as new head of res*/
l.setHead(l.getHead()->next); /*move to next node in l*/
}
return res;
}
答案 0 :(得分:0)
您可以在
之后删除节点l.setHead(l.getHead()->next); /*move to next node in l*/
但您首先需要对该节点的引用。所以你需要将它保存在像
这样的变量中LinkedList *tmp = l.getHead();
在l.setHead(...)
行之前。