단일 체인 시트 의 마지막 k 번 째 노드 를 가 져 오 는 세 가지 방법
링크 를 입력 하여 이 링크 의 마지막 k 번 째 노드 를 출력 합 니 다.
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
방안 1: 폭력 방법:
class Solution {
public:
ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
if (!pListHead || k <= 0) return nullptr;
int n = 0;
ListNode *cur = pListHead;
while (cur) {
cur = cur->next;
++n;
}
if (n < k) return nullptr;
n -= k;
while (n--) {
pListHead = pListHead->next;
}
return pListHead;
}
};
프로젝트 2: 빠 른 속도 포인터:
class Solution {
public:
ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
if (!pListHead || k <= 0) return nullptr;
auto slow = pListHead, fast = pListHead;
// k
while (k--) {
if (fast)
fast = fast->next;
else
return nullptr; // < K,
}
while (fast) {
slow = slow->next;
fast = fast->next;
}
return slow;
}
};
방안 3, 기록 법
class Solution {
public:
ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
ListNode* p = pListHead;
int count = 0;
vector temp;
while(p){
count ++;
temp.push_back(p);
p = p->next;
}
if(count < k)
return nullptr;
return temp[count - k];
}
};
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 체인 시계는 뱀을 탐식하는 작은 게임을 실현한다본고의 실례는 여러분에게 C 언어 체인표가 뱀 탐식 게임을 실현하는 구체적인 코드를 공유하여 참고하도록 하였으며, 구체적인 내용은 다음과 같다. 프로젝트 이름: 뱀놀이 운영 환경: Linux 프로그래밍 언어: C 언...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.