AddTwoNumbers

ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) 
{
		int val1, val2, carry = 0;
		int sum;
		ListNode *s;
		ListNode *node = NULL;
		ListNode *head = (ListNode*)malloc(sizeof(ListNode));
		//head->next = NULL;
		s = head;
		while ((l1!=NULL)||(l2!=NULL)||carry!=0)
		{
			val1 = (l1 == NULL ? 0 : l1->val);
			val2 = (l2 == NULL ? 0 : l2->val);
			node = (ListNode*)malloc(sizeof(ListNode));
			sum = val1 + val2 + carry;
			carry = sum / 10;
			node->val = sum%10;
			node->next = NULL;
			s->next = node;
			s = node;
			l1 = (l1 == NULL ? NULL : l1->next);
			l2 = (l2 == NULL ? NULL : l2->next);
		}
		s->next = NULL;
		return head->next;
}

以上为solution中的代码。

这道题很简单,最主要还是自己的基础知识不扎实,对于建立结构体节点都不是很明了,做了挺长时间,锻炼了很多,不错!

你可能感兴趣的:(leetcode)