1. #include <bits/stdc++.h> 
  2. Node* sumBetweenZeroes(Node* head) 
  3. int sum = 0; 
  4. Node *curr = head -> next; 
  5. while (curr->data) 
  6. sum = sum + curr->data; 
  7. curr = curr -> next; 
  8. Node *result = new Node(sum); 
  9. curr = curr -> next; 
  10. Node *pointer = result; 
  11. while (curr) 
  12. sum = 0; 
  13. while (curr->data) 
  14. sum = sum + curr->data; 
  15. curr = curr -> next; 
  16. pointer -> next = new Node(sum); 
  17. pointer = pointer -> next; 
  18. curr = curr -> next; 
  19. return result; 

이건 되는데



  1. #include <bits/stdc++.h> 
  2. Node* sumBetweenZeroes(Node* head) 
  3. int sum = 0; 
  4. Node *curr = head -> next; 
  5. while (curr->data) 
  6. sum = sum + curr->data; 
  7. curr = curr -> next; 
  8. Node *result = new Node(sum); 
  9. curr = curr -> next; 
  10. Node *pointer = result-> next; 
  11. while (curr) 
  12. sum = 0; 
  13. while (curr->data) 
  14. sum = sum + curr->data; 
  15. curr = curr -> next; 
  16. pointer = new Node(sum); 
  17. pointer = pointer -> next; 
  18. curr = curr -> next; 
  19. return result; 

이건 안된다. Node *pointer를 result->next로 선언하고 pointer에다가 Node를 넣었음 아래꺼는. 둘 다 같은 코드로 보이는데 왜 아래꺼는 안되는걸까?