当前位置:   article > 正文

算法学习 1、链表相加

链表相加
最近准备学习算法,学习的过程中做一点小总结。小菜鸟,对C++使用不熟练,风格还不规范,写的有点笨拙,不对的地方希望帮忙指正,会及时修改,万分感谢!

 

题目:给定两个链表,分别表示两个非负整数。它们的数字逆序存储在链表中,并且每个节点只存储一个数字,计            算两个数的和,并且返回和的链表头指针。

           如: 输入:3->6->9,2->5->7,输出:5->1->7->1

思路:1、逆序相加,相当于从两个链表头指针向后依次相加

            2、注意两个链表长度可能不同

            3、注意可能存在的进位问题

参考答案如下:(其中的细节函数,如Destroy、Print没有实现)

我的实现代码:

  1. // LinkAdd.cpp : 定义控制台应用程序的入口点。
  2. //
  3. #include "stdafx.h"
  4. #include <iostream>
  5. using namespace std;
  6. typedef struct Node
  7. {
  8. //public:
  9. int data;
  10. Node* nextPtr;
  11. Node(int value):data(value),nextPtr(NULL){}
  12. };
  13. Node* LinkAdd(Node* HeadNode1,Node* HeadNode2);
  14. int* GetIntValue(int size);
  15. Node* CreateLink(int dataArray[],int n);
  16. void OutputLink(Node* HeadNode);
  17. int _tmain(int argc, _TCHAR* argv[])
  18. {
  19. int len1 = 8;
  20. int len2 = 10;
  21. int* dataArray1 = GetIntValue(len1);/*生成第一个链表对应值的整形数组*/
  22. int* dataArray2 = GetIntValue(len2);
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/63463
推荐阅读
相关标签
  

闽ICP备14008679号