AddLists(将两个链表相加)
题目描述:
两个链表中保存中一系列整数,分别代表着两个整数;例如1->2->3;给定两个链表的头结点,返回两个链表中数相加后的结果。
例子:
例如给定1->2->3和2->4->5;则返回头结点,其指向的链表内容为3->6->8。
解题思路:
解题思路为:因为数据的相加需要从尾部开始,所以第一个想法是利用栈结构。将数据分别导入到两个栈中,不断的从栈顶提取出数据,相加后新建一个节点,用相加的初始值初始化该节点,并记录是否进位;下一次的相加后的新建的节点指向上一个节点即可。另外也可以将结果导入到一个新栈中,在全部计算完成之后,从栈顶取元素初始化即可。
代码如下:
其中关于链表类的定义如下:
|
|
解法一:利用三个栈来实现,需要注意的是进位的保存和计算完成之后需要判断进位来决定头结点是否为1.
|
|
解法二:直接将链表逆序后计算和的值并连接链表
|
|