it has to use this linked list (i have the digits stored in reversed order so the number 123 is stored in the list 321... any ways i have been playing with this for some time now and dont really know where to go (i know the way i have it setup now it will only work if they are the same length but i will fix that later)

struct node { int digit; node * next; };

bigNumber bigNumber::operator + (const bigNumber & right) const { int temp,i,size; bool add = false; node * rWalker = right.root, * walker = root; char * answer; if(this->length > right.length) { answer = new char[this->length]; size = this->length +2; } else { answer = new char[right.length]; size = right.length +2; } for(i=0; i<=size-1; i++) { if(walker != NULL && rWalker != NULL) { temp = walker->digit + rWalker->digit; if(add && walker->next != NULL) { temp++; add = false; } answer[i] = (temp/10?temp%10:temp) + 48; add = (temp/10?true:false); walker = walker->next; rWalker = rWalker->next; } } if(add) { answer[size+1] == '1'; answer[size+2] == '\0'; } else answer[size] = '\0'; return bigNumber(answer); }