请用c++实现对一个任意长度链表的所有数据对三取余数并把所有的数求和放在链表的第一个数。
这里给出一个实现:
struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} };
ListNode* sumAndMod(ListNode* head) { if (head == NULL || head->next == NULL) { return head; } int sum = 0; ListNode* cur = head; while (cur != NULL) { sum += cur->val; cur = cur->next; } cur = head; while (cur != NULL) { cur->val = cur->val % 3; cur = cur->next; } head->val = sum % 3; return head; }
首先遍历链表求和,然后再遍历链表将每个数对三取余数,最后把求和结果放在链表的第一个节点上并返回头结点。
原文地址: https://www.cveoy.top/t/topic/bI29 著作权归作者所有。请勿转载和采集!