本文主要是介绍两个随机长度的链表相加,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目两个随机链表求和:
链表存储的是非负整数,每个节点只存储一个数字,如 2->5->7 + 8->9->6 = 0->5->4->1
这里只给出核心函数代码块,完整的例子请参考
https://github.com/Sangewang/LinkListPrac/blob/master/CreateAndShowLinklist.c
LinkNode * AddSumLinkList(LinkNode *pHead1,LinkNode *pHead2)
{LinkNode *p1 = pHead1;LinkNode *p2 = pHead2;LinkNode *pSumHead = (LinkNode*)malloc(sizeof(LinkNode));pSumHead->m_Value = -1;LinkNode *pFind = pSumHead;int flag = 0;for(p1=pHead1,p2=pHead2;p1!=NULL||p2!=NULL;p1=(p1==NULL?NULL:p1->p_Next),p2=(p2==NULL?NULL:p2->p_Next),pFind=pFind->p_Next){LinkNode *pTemp = (LinkNode *)malloc(sizeof(LinkNode));const int value1 = (p1==NULL?0:p1->m_Value);const int value2 = (p2==NULL?0:p2->m_Value);printf("value1 = %d , value2 = %d\n",value1,value2);pTemp->m_Value = (value1 + value2 + flag)%10;flag = (value1 + value2 + flag)/10;pFind->p_Next = pTemp;}if(flag>0){LinkNode *p = (LinkNode *)malloc(sizeof(LinkNode));p->m_Value = flag;pFind->p_Next = p;} return pSumHead->p_Next;
}
这篇关于两个随机长度的链表相加的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!