불변의 연결 목록이 있다고 가정하고 다음 인터페이스를 사용하여 각 노드의 모든 값을 역으로 출력해야 합니다. -
-
ImmutableListNode - 이것은 변경할 수 없는 연결 목록의 인터페이스이며 목록의 머리 부분이 지정됩니다.
연결 목록에 액세스하려면 다음 함수를 사용해야 합니다. -
-
ImmutableListNode.printValue() - 현재 노드의 값을 출력합니다.
-
ImmutableListNode.getNext() - 다음 노드를 반환합니다.
따라서 목록이 [0, -4, -1, 3, -5]와 같으면 출력은 [-5, 3, -1, -4, 0]
이 됩니다.이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
ImmutableListNode 유형 노드에 대한 스택 st 정의
-
머리가 null이 아닌 동안
-
머리를 st에 삽입
-
head :=머리 다음
-
-
st가 비어 있지 않은 동안
-
스택 맨 위 노드의 값을 인쇄합니다.
-
스택에서 노드 삭제
-
예시(C++)
더 나은 이해를 위해 다음 구현을 살펴보겠습니다. −
class Solution { public: void printLinkedListInReverse(ImmutableListNode* head) { stack <ImmutableListNode*> st; while(head){ st.push(head); head = head->getNext(); } while(!st.empty()){ st.top()->printValue(); st.pop(); } } };
입력
[0,-4,-1,3,-5]
출력
[-5,3,-1,-4,0]