Skip to content

Instantly share code, notes, and snippets.

@boblmartens
Created June 30, 2010 16:12
Show Gist options
  • Save boblmartens/458878 to your computer and use it in GitHub Desktop.
Save boblmartens/458878 to your computer and use it in GitHub Desktop.
#include <stdio.h>
#include <stdlib.h>
struct LinkedList {
int number;
struct LinkedList *next;
};
typedef struct LinkedList llist;
void PrintLinkedList( llist* );
llist* ReverseLinkedList( llist* );
llist* CreateLinkedList( void );
int main (int argc, const char * argv[]) {
llist *head;
printf("\nLet's count down!\n-------------\n");
head = CreateLinkedList();
PrintLinkedList(head);
printf("\nNow try going up!\n-------------\n");
head = ReverseLinkedList(head);
PrintLinkedList(head);
return 0;
}
void PrintLinkedList( llist *head ) {
llist *curPtr;
curPtr = head;
while (curPtr != NULL) {
printf("Number: %d\n", curPtr->number);
curPtr = curPtr->next;
}
}
llist* CreateLinkedList( void ) {
llist *curr, *head;
int num;
head = NULL;
for (num=1; num <= 12; num++) {
curr = (llist *)malloc( sizeof(llist) );
curr->number = num;
curr->next = head;
head = curr;
}
return curr;
}
llist* ReverseLinkedList( llist *head ) {
llist *temp, *next_ptr, *prev_ptr;
next_ptr = head;
prev_ptr = NULL;
while (next_ptr != NULL) {
temp = next_ptr;
next_ptr = temp->next;
temp->next = prev_ptr;
prev_ptr = temp;
}
head = temp;
return head;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment