温州市城乡建设厅网站首页,清河网站建设费用,在易语言里面做网站,wordpress侧栏跟随本题要求实现两个函数#xff0c;分别将读入的数据存储为单链表、将链表中偶数值的结点删除。链表结点定义如下#xff1a; struct ListNode { int data; struct ListNode *next; }; 函数接口定义#xff1a; struct ListNode *createlist(); struct ListNode *deleteeven( …本题要求实现两个函数分别将读入的数据存储为单链表、将链表中偶数值的结点删除。链表结点定义如下 struct ListNode { int data; struct ListNode *next; }; 函数接口定义 struct ListNode *createlist(); struct ListNode *deleteeven( struct ListNode *head ); 函数createlist从标准输入读入一系列正整数按照读入顺序建立单链表。当读到−1时表示输入结束函数应返回指向单链表头结点的指针。
函数deleteeven将单链表head中偶数值的结点删除返回结果链表的头指针。 void push_back(struct ListNode** ppList, int x)
{//assert(ppList ! NULL);struct ListNode* newNode (struct ListNode*)malloc(sizeof(struct ListNode));newNode-data x;newNode-next NULL;if (*ppList NULL){*ppList newNode;return;}struct ListNode* end *ppList;while (end-next ! NULL){end end-next;}end-next newNode;
}struct ListNode* createlist()
{struct ListNode* head (struct ListNode*)malloc(sizeof(struct ListNode));int ret 0;scanf(%d, ret);if (ret ! -1){head-data ret;head-next NULL;}else{free(head);return NULL;}while (1){scanf(%d, ret);if (ret -1){break;}push_back(head, ret);}return head;
}struct ListNode* deleteeven(struct ListNode* head)
{struct ListNode* prev head;struct ListNode* cur head;while (cur ! NULL){if (cur-data % 2 1){prev cur;cur cur-next;continue;}if (prev cur){cur cur-next;free(prev);prev cur;head cur;continue;}prev-next cur-next;free(cur);cur prev-next;}return head;
}