leetcode 문제 풀이 보고서 2. 두 개의 숫자 추가
2781 단어 leetcode
제목 주소
난이도
제목 설명
단일 체인 표 로 하나의 큰 정 수 를 표시 하 는데 그 중에서 단일 체인 표 의 각 노드 는 하나의 숫자 0 ~ 9 밖 에 없다.이러한 단일 체인 표 두 개 에 표 시 된 정 수 를 주 고 그들의 합 을 구하 십시오 (아니면 단일 체인 표 로 표시 합 니까)
나의 생각
문 제 는 이해 하기 어렵 습 니 다. 처음에 단일 체인 표를 대응 하 는 노드 에 만 추가 하 는 줄 알 았 는데 단일 체인 시 계 를 하나의 정수 에 더 하 는 것 을 볼 줄 몰 랐 습 니 다. 그러면 진 위 를 고려 해 야 합 니 다.문 제 를 이해 한 후에 어렵 지 않 습 니 다. 어 려 운 점 은 1. 단일 체인 표 의 조작 (데이터 구조 지식 검증) 2. 여러 가지 상황 을 고려 하 는 것 입 니 다. 예 를 들 어 두 목록 의 길이 가 다 릅 니 다. 예 를 들 어 마지막 한 자 리 를 더 한 후에 진 위 를 하 는 등 상황 입 니 다.
내 코드
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
// ,
class Solution {
public:
ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
ListNode* head = new ListNode(0);
ListNode* cur = head;
short flag = 0; //
// l1 l2
while (l1 != NULL || l2 != NULL) {
int lv1, lv2;
if (l1 == NULL) {
lv1 = 0;
} else {
lv1 = l1->val;
l1 = l1->next;
}
if (l2 == NULL) {
lv2 = 0;
} else {
lv2 = l2->val;
l2 = l2->next;
}
short v = lv1 + lv2 + flag; // , 0 9, short
flag = v / 10;
v = v % 10;
cur->next = new ListNode(v);
cur = cur->next;
}
//
if (flag > 0) {
cur->next = new ListNode(flag);
}
return head->next;
}
};
공식 문 제 를 읽다.
공식 문제 풀이.
기본적으로 내 가 생각 하 는 것 과 차이 가 많 지 않다.
사상 핵심 총화
문제 의 요 구 를 이해 하고 각종 특수 상황 에 주의 하여 링크 의 조작 을 잘 이해 하지 마 세 요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
0부터 시작하는 LeetCode Day8 「1302. Deepest Leaves Sum」해외에서는 엔지니어의 면접에 있어서 코딩 테스트라고 하는 것이 행해지는 것 같고, 많은 경우, 특정의 함수나 클래스를 주제에 따라 실장한다고 하는 것이 메인이다. 빠른 이야기가 본고장에서도 행해지고 있는 것 같은 코...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.