검지 혜택: 링크 의 마지막 K 번 째 노드
4052 단어 Algorithm
제목 설명
링크 를 입력 하여 이 링크 의 마지막 k 번 째 노드 를 출력 합 니 다.
주의:
k >= 0
; 본보기
: :1->2->3->4->5 ,k=2
:4
알고리즘 (링크 옮 겨 다 니 기) O (n)
단일 체인 시트 는 전구 노드 로 색인 할 수 없 기 때문에 뒤로 이동 할 수 밖 에 없습니다.
시공 분석
시간 복잡 도 분석: 링크 는 두 번 반복 되 고 시간 복잡 도 는 O (n) 이다.
C + + 코드
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
if (NULL == pListHead)
return NULL;
unsigned int num = 0;
auto *node = pListHead;
while (node)
{
num++;
node = node->next;
}
node = pListHead;
if (k > num)
return NULL;
// num - k
// node num - k +1
for (int i = 0; i < num - k; i++)
{
node = node -> next;
}
return node;
}
};
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
하나의 수조를 깊이가 가장 낮은 두 갈래 나무로 바꾸다문제 정의: Givena sorted(increasing order) array, write an algorithm to create abinary tree with minimal height. 생각: 이 문제는 비...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.