zl程序教程

您现在的位置是:首页 >  大数据

当前栏目

合并零之间非零节点

节点 之间 合并
2023-09-14 09:06:55 时间

问题引入 

【问题描述】

给你一个链表的头节点 head,该链表包含由 0 分隔开的一连串整数。链表的开端和末尾的节点都满足== 0 。对于每两个相邻的 0 ,请你将它们之间的所有节点合并成一个节点,其值是所有已合并节点的值之和。然后将所有 0 移除,修改后的链表不应该含有任何 0 。

【输入形式】

输入一个链表,包括若干个整数。两端结点保证是0,不存在任意两个连续的0。(元素之间以空格分隔)

【输出形式】

输出合并非零结点后的链表。(元素之间以空格分隔)

【样例输入】

0 3 1 0 4 5 2 0 e

【样例输出】

4 11

【样例说明】

以输入非法整数作为链表输入结束标志。

【评分标准】

不允许修改程序结构,只完成算法函数。

程序设计 

#include<stdio.h>
#include<stdlib.h>

typedef  int ElemType;
typedef struct LNode
{
    ElemType data;
    struct LNode *next;
}LNode,*LinkList;

LinkList initList()
{
    LinkList head;
    head=(LinkList)malloc(sizeof(LNode));
    if(head==NULL)
    {
        return NULL;