1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
| typedef struct { int val; struct MyLinkedList* next; } MyLinkedList;
MyLinkedList* myLinkedListCreate() { MyLinkedList* head = (MyLinkedList*)malloc(sizeof(MyLinkedList)); head->next = NULL; return head; }
int myLinkedListGet(MyLinkedList* obj, int index) { MyLinkedList* cur = obj->next; for(int i = 0; cur != NULL; i++){ if(i == index) return cur->val; else cur = cur->next;
} return -1; }
void myLinkedListAddAtHead(MyLinkedList* obj, int val) { MyLinkedList* cur = (MyLinkedList*)malloc(sizeof(MyLinkedList)); cur->val = val; cur->next = obj->next; obj->next = cur; }
void myLinkedListAddAtTail(MyLinkedList* obj, int val) { MyLinkedList* cur = obj; MyLinkedList* tHead = (MyLinkedList*)malloc(sizeof(MyLinkedList)); tHead->val = val; tHead->next = NULL; while(cur->next != NULL) cur = cur->next; cur->next = tHead; }
void myLinkedListAddAtIndex(MyLinkedList* obj, int index, int val) { if(index == 0){ myLinkedListAddAtHead(obj, val); return; }
MyLinkedList* nhead = (MyLinkedList*)malloc(sizeof(MyLinkedList)); nhead->val = val; MyLinkedList* cur = obj->next;
for(int i = 1; cur != NULL; i++){ if(i == index){ nhead->next = cur->next; cur->next = nhead; return; } else cur = cur->next; } }
void myLinkedListDeleteAtIndex(MyLinkedList* obj, int index) { if(index == 0){ MyLinkedList *tmp = obj->next; if (tmp != NULL){ obj->next = tmp->next; free(tmp); } return; } MyLinkedList *cur = obj->next; for (int i = 1 ;cur != NULL && cur->next != NULL; i++){ if (i == index){ MyLinkedList *tmp = cur->next; if (tmp != NULL) { cur->next = tmp->next; free(tmp); } return; } else{ cur = cur->next; } } }
void myLinkedListFree(MyLinkedList* obj) { while(obj != NULL){ MyLinkedList *tmp = obj; obj = obj->next; free(tmp); } }
|