Subtract 1 from a number represented as Linked List

  #include using namespace std;  class Node {public:    int data;    Node* next;};  Node* newNode(int data){        Node* new_node = new Node;    new_node->data = data;    new_node->next = NULL;          return new_node;}  int subtractOneUtil(Node* head){          if (head == NULL)        return -1;              int borrow = subtractOneUtil(        head->next);          if (borrow == -1) {                          if (head->data == 0) {            head->data = 9;            return -1;        }                          else {            head->data = head->data – 1;            return 0;        }    }          else {        return 0;    }}  Node* subtractOne(Node* head){              subtractOneUtil(head);              while (head and head->next           and head->data == 0) {        head = head->next;    }      return head;}  void printList(Node* node){        while (node != NULL) {        cout data;        node = node->next;    }    cout next = newNode(0);    head->next->next = newNode(0);    head->next->next->next = newNode(0);      cout