赞
踩
题目:给定两个链表,分别表示两个非负整数。它们的数字逆序存储在链表中,并且每个节点只存储一个数字,计 算两个数的和,并且返回和的链表头指针。
如: 输入:3->6->9,2->5->7,输出:5->1->7->1
思路:1、逆序相加,相当于从两个链表头指针向后依次相加
2、注意两个链表长度可能不同
3、注意可能存在的进位问题
参考答案如下:(其中的细节函数,如Destroy、Print没有实现)
我的实现代码:
- // LinkAdd.cpp : 定义控制台应用程序的入口点。
- //
-
- #include "stdafx.h"
- #include <iostream>
- using namespace std;
-
- typedef struct Node
- {
- //public:
- int data;
- Node* nextPtr;
- Node(int value):data(value),nextPtr(NULL){}
- };
-
- Node* LinkAdd(Node* HeadNode1,Node* HeadNode2);
- int* GetIntValue(int size);
- Node* CreateLink(int dataArray[],int n);
- void OutputLink(Node* HeadNode);
-
- int _tmain(int argc, _TCHAR* argv[])
- {
- int len1 = 8;
- int len2 = 10;
- int* dataArray1 = GetIntValue(len1);/*生成第一个链表对应值的整形数组*/
- int* dataArray2 = GetIntValue(len2);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。