체인 테이블 반전(노드 포인터 방향 변경하지 않음)
4251 단어 체인 테이블
#include <iostream>
#include <stack>
using namespace std;
struct Node{
int data;
Node *next;
Node(int d) : data(d) {}
};
int label = 0;
// : ,left right, right , left right, return ,right ,left 。
void Reverse(Node *&left, Node *right){
if (!left || !right)
return;
Reverse(left, right->next);
if (left == right || right->next == left){ //left == right ,right->next == left
label = 1;
return;
}
if (label == 1)
return;
int tmp = left->data;
left->data = right->data;
right->data = tmp;
left = left->next;
}
void Reverse(Node *start){
if (!start)
return;
Reverse(start, start);
}
void PrintLinkedList(Node *start){
while(start){
cout<<start->data<<endl;
start = start->next;
}
}
int main()
{
Node a(1);
Node b(2);
Node c(3);
Node d(4);
Node e(5);
a.next = &b;
b.next = &c;
c.next = &d;
d.next = &e;
e.next = NULL;
Reverse(&a);
PrintLinkedList(&a);
return 0;
}
EOF
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
하나의 단일 체인 테이블의 순환과 귀속 실현을 반전시키다텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.