leetcode_11: 링크
링크 반전
단일 체인 시트 반전
class Solution {
public:
ListNode* reverseList(ListNode* head) {
ListNode* pre = NULL;
ListNode* tmp = NULL;
while(head){
tmp= head->next;
head->next=pre;
pre=head;
head = tmp;
}
return pre;
}
};
정렬 링크
O (n log n) 시간 복잡 도와 상수 급 공간 복잡 도 에서 링크 를 정렬 합 니 다.
사고방식: 체인 테이블 로 병합 정렬 실현
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* merge(ListNode* nodes1, ListNode* nodes2){
ListNode* head = new ListNode(0);
ListNode* nodes = head;
while(nodes1 && nodes2){
if(nodes1->val < nodes2->val){
nodes->next = nodes1;
nodes1 = nodes1->next;
}else{
nodes->next = nodes2;
nodes2 = nodes2->next;
}
nodes = nodes->next;
}
if(nodes1) nodes->next=nodes1;
if(nodes2) nodes->next=nodes2;
return head->next;
}
ListNode* sortList(ListNode* head) {
if(head==NULL || head->next==NULL) return head;
ListNode* tmp1 = head;
ListNode* tmp2 = head->next;
while(tmp2 && tmp2->next){
tmp1 = tmp1->next;
tmp2 = tmp2->next->next;
}
ListNode* right = sortList(tmp1->next);
tmp1->next = NULL;
ListNode* left =sortList(head);
return merge(left, right);
}
};
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
하나의 단일 체인 테이블의 순환과 귀속 실현을 반전시키다텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.