題目:
解答:
/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ struct ListNode* deleteMiddle(struct ListNode* head) { int cnt = 0; struct ListNode *pre = NULL; struct ListNode *cur = NULL; cur = head; while (cur) { cur = cur->next; cnt += 1; } cnt >>= 1; if (cnt == 0) { return NULL; } cur = head; pre = head; while (cnt--) { pre = cur; cur = cur->next; } pre->next = cur->next; return head; }