比如說連結串列
a -> b -> c ->
d表頭是a,表尾是d。
就地逆置演算法的意思就是變成:
a <- b <- c <- d
a變成表尾,d變成表頭
假設struct LINK
{ int value;
struct LINK * next;
};
struct LINK a, b, c, d;
a->next = &b;
b->next = &c;
c->next = &d;
d->next = 0;
逆置後:
b->next = &a;
c->next = &b;
d->next = &c;
a->next = 0;
所謂就地逆置,就是在操作中,遇到a->next = &b;的情況,那麼改寫為b->next = &a;
比如說連結串列
a -> b -> c ->
d表頭是a,表尾是d。
就地逆置演算法的意思就是變成:
a <- b <- c <- d
a變成表尾,d變成表頭
假設struct LINK
{ int value;
struct LINK * next;
};
struct LINK a, b, c, d;
a->next = &b;
b->next = &c;
c->next = &d;
d->next = 0;
逆置後:
b->next = &a;
c->next = &b;
d->next = &c;
a->next = 0;
所謂就地逆置,就是在操作中,遇到a->next = &b;的情況,那麼改寫為b->next = &a;