你有两个用链表代表的整数,其中每个节点包含一个数字。数字存储按照在原来整数中相反
的顺序,使得第一个数字位于链表的开头。写出一个函数将两个整数相加,用链表形式返回和。
样例
给出两个链表 3->1->5->null
和 5->9->2->null
,返回 8->0->8->null
解题报告:直接进行while循环,每次保存进位致直到一个节点到空,另一个单个结点继续模拟,最后判断到空时是否有进位,有添加一个新的结点。
class Solution {
public:
/**
* @param head: The first node of linked list.
* @return: The head of linked list.
*/
ListNode *insertionSortList(ListNode *head) {
// write your code here
ListNode *t= new ListNode(0);
while(head!=NULL){
ListNode *pre=t;
while (pre->next != NULL && pre->next->val < head->val) {
pre = pre->next;
}
ListNode *tem=head->next;
head->next=pre->next;
pre->next=head;
head=tem;
}
return t->next;
}
};