Append node trong Linked List

Mình có viết một hàm append như bên dưới, mọi người cho mình hỏi viết như thế đã đúng chưa, có cách nào viết gọn hơn hay rõ ràng hơn không? (prototype bắt buộc phải như vậy!). Mình cảm ơn!

void append(Position* &start, Position* new_position) {
	if (start == NULL) {
		start = new_position;
		return;
	}

	Position *p = start;
	if (p->pNext == NULL) {
		start->pNext = new_position;
		return;
	}

	while (p->pNext) {
		if (p->pNext->pNext == NULL) {
			Position *temp = p->pNext;
			temp->pNext = new_position;
			return;
		}
		p = p->pNext;
	}	
}
if (start == NULL) start = new_position;
else {
    Position* p =start;
    /*while (p->pNext){
    p = p->pNext;
    }*/
    for (; p->pNext; p = p->pNext);
    p->pNext = new_position;
}

Lâu quá mới đụng đến, nếu mình sai báo nha.

1 Like

p nằm ngoài for là không được rồi bạn

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?