1234567891011121314151617181920212223242526272829303132333435363738394041 |
- #include <stdio.h>
-
- struct ListNode {
- int val;
- struct ListNode *next;
- };
-
- struct ListNode* middleNode(struct ListNode*);
- struct ListNode* middleNode(struct ListNode* head){
- struct ListNode* ind = head;
- struct ListNode* middle = head;
- int on = 0;
- while (ind != NULL) {
- ind = ind->next;
- if (on == 0) {
- on = 1;
- } else {
- on = 0;
- middle = middle->next;
- }
- }
- return middle;
- }
-
- int main() {
- printf("Expected: [4, 5, 6]\n");
- printf("Got:");
- struct ListNode l6 = { 6, NULL };
- struct ListNode l5 = { 5, &l6 };
- struct ListNode l4 = { 4, &l5 };
- struct ListNode l3 = { 3, &l4 };
- struct ListNode l2 = { 2, &l3 };
- struct ListNode linkedList = { 1, &l2 };
- struct ListNode* middle = middleNode(&linkedList);
- while (middle != NULL) {
- printf(" %d ", middle->val);
- middle = middle->next;
- }
- printf("\n");
- return 0;
- }
|