Programming/C C++

[DS] Get Node Value

연결 리스트의 가장 마지막 노드를 0번 인덱스로 생각했을 때 끝 노드로부터의 인덱스가 주어지면 해당 노드의 데이터를 출력하는 프로그램이다.

www.hackerrank.com/challenges/get-the-value-of-the-node-at-a-specific-position-from-the-tail/problem

int getNode(SinglyLinkedListNode* head, int positionFromTail) {
    int size = 0;
    SinglyLinkedListNode* tmp = head;
    while(tmp->next != NULL){
        size +=1;
        tmp = tmp->next;
    }
    tmp = head;
    for(int i=0;i<(size - positionFromTail);i++){
        tmp = tmp->next;
    }
    return (tmp->data);

}

△ 작성한 부분

while문에서 size를 구할때 가장 끝노드의 바로 앞 노드까지 계산해서 실제 연결리스트의 길이 -1 만큼을 구했다. 따라서 for문의 조건을 제시할 때 size -1 이 아닌 size로 사용했다.

 

 

 

 

SMALL

'Programming > C C++' 카테고리의 다른 글

Angry Professor  (2) 2020.11.08
Eletronics Shop  (0) 2020.11.08
Counting Valleys  (0) 2020.10.04
Drawing Book  (0) 2020.09.27
[DS] Reverse a doubly-linked list  (0) 2020.09.27