기사 디렉토리
주제 설명:
두 개의 음수가 아닌 정수를 나타내는 두 개의 비어 있지 않은 연결 목록이 제공됩니다. 각 숫자는 역순으로 저장되며 각 노드는 하나의 숫자만 저장할 수 있습니다.
두 개의 숫자를 더하고 그 합을 나타내는 연결리스트를 같은 형식으로 반환해주세요.
숫자 0을 제외하면 두 숫자 모두 0으로 시작하지 않을 것이라고 가정할 수 있습니다.
题目链接:
2. 두 개의 숫자를 추가
코드를 통해
새 연결 목록을 만듭니다.
생각하고 조작하기 쉽다는 장점이 있지만 차지하는 저장공간이 늘어나게 되고, 연결리스트 자체의 데이터가 크면 메모리 소모도 늘어나게 된다.
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
ListNode *first=new ListNode();
ListNode* p=first,*p1=l1,*p2=l2;
while(p1||p2){
if(p1){
p->val+=p1->val;p1=p1->next;}
if(p2){
p->val+=p2->val;p2=p2->next;}
if(p1||p2||p->val>9){
p->next=new ListNode();
if(p->val>9){
p->val-=10;
p->next->val=1;
}
p=p->next;
}
}
return first;
}
};
이 것이 마지막이다