Điều này dường như trả về câu trả lời đúng, nhưng tôi không chắc đây có phải là cách tốt nhất để thực hiện mọi thứ hay không. Có vẻ như tôi đang truy cập các nút n đầu tiên quá nhiều lần. Bất kỳ đề xuất? Lưu ý rằng tôi phải làm điều này với một danh sách liên kết đơn lẻ.Tìm "Nth nút từ đầu" của danh sách được liên kết
Node *findNodeFromLast(Node *head, int n)
{
Node *currentNode;
Node *behindCurrent;
currentNode = head;
for(int i = 0; i < n; i++) {
if(currentNode->next) {
currentNode = currentNode->next;
} else {
return NULL;
}
}
behindCurrent = head;
while(currentNode->next) {
currentNode = currentNode->next;
behindCurrent = behindCurrent->next;
}
return behindCurrent;
}
Đây có phải là một danh sách đơn lẻ liên kết với không có thông tin về cách nhiều mặt hàng có mặt trong danh sách? – dirkgently
Đúng. Danh sách liên kết đơn lẻ. – Stephano
Chỉ để được picky, tôi sẽ đặt tên 'behindCurrent' là' currentNode' và 'currentNode' như một cái gì đó khác. – fastcodejava