leetcode Merge Two Sorted Lists 통합 두 개의 정렬 체인 테이블
4832 단어 leetcode
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
if (l1 == NULL) return l2;
if (l2 == NULL) return l1;
if (l1->val < l2->val) {
l1->next = mergeTwoLists(l1->next, l2);
return l1;
}
else {
l2->next = mergeTwoLists(l2->next, l2);
return l2;
}
}
};
2. 비귀속
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
if (l1 == NULL) return l2;
if (l2 == NULL) return l1;
ListNode *temphead = NULL;
ListNode *l1pointer = l1;
ListNode *l2pointer = l2;
ListNode *temptail = NULL;
// , l1,l2 ,
if (l1->val < l2->val) {
temphead = l1;
l1pointer = l1pointer->next;
}
else {
temphead = l2;
l2pointer = l2pointer->next;
}
temptail = temphead;
while (l1pointer != NULL && l2pointer != NULL) {
// l1,l2
if (l1pointer->val < l2pointer->val){
temptail->next = l1pointer;
l1pointer = l1pointer->next;
}
else {
temptail->next = l2pointer;
l2pointer = l2pointer->next;
}
temptail = temptail->next;
}
if (l1pointer == NULL)
temptail->next = l2pointer;
else
temptail->next = l1pointer;
return temphead;
}
};
귀속 방법은 비용이 많이 들고, 체인 시계가 너무 길면 넘칠 수 있으니, 비귀속 방법을 추천합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.