Chèn sau mỗi nút của dslk đơn một nút mới

em có bài tập về con trỏ yêu cầu là chèn sau mỗi nút trong danh sách một nút mới có giá trị là tổng các chữ số của nút trước đó. Em tạo nút với giá trị là tổng chữ số rồi sử dụng hàm chèn sau nút q nhưng toàn xuất ra ds như lúc đầu hoặc kh chạy mong mọi người giúp đỡ, em cảm ơn ạ!

Tạm bỏ qua phần liên quan đến tính tổng, bạn viết được hàm thực hiện “insert một node vào linked-list” chưa?

Ví dụ có danh sách liên kết như vậy:
2 -> 5 -> 6 -> 1 -> 9
Bạn code như thế nào để có được 1 danh sách như sau?
2 -> 0 -> 5 -> 0 -> 6 -> 0 -> 1 -> 0 -> 9 -> 0

Bạn nói “toàn xuất ra ds như lúc đầu hoặc kh chạy”, vậy code của bạn đâu?

4 Likes

em mới viết được hàm thêm vào 1 nút thôi ạ còn thêm vào nhiều nút 1 lần như vậy thì em chưa. Anh cho em tham khảo với ạ

Mình có đoạn code như thế này cho bạn dễ hình dung

ListNode* insertAfterEachNode(ListNode* L)
{
	ListNode* p = L;
	while (p)
	{
		ListNode* temp = new ListNode();
		// temp->value = ???;

		// TODO
		// insert node temp right after the current node p so that:
		// p -> temp -> next_of_p
		
		// move p to the next_of_p
		// p = next_of_p;
	}
	
	return L;
}

Cứ với mỗi node P hiện đang xét, nếu P vẫn khác NULL, thì làm sao để có node Temp nằm giữa p và next_of_p. Bạn làm xong phần này rồi thì chỉ cần thay temp->value bằng tổng bạn tính được thôi.

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