H是一个单链表的头指针,使用指针P,Q使链表反转,写出程序
1 按照题目要求。(只能使用两个指针)
2 代码正确的同时考虑特殊情况。比如H为NULL
3 代码尽量简洁。批改面试题目的人不会有耐心看完冗长的代码的。越短的代码越有吸引力。
4 当然必要的注视也是必须的。
Q = NULL; // Q用来保存H的上一个节点。
while (H != NULL)
{
P = H.next; // P保存H的下一个节点。
H.next = Q; // 把H和上一个节点链接起来。
Q = H; // 保存当前节点到Q
H = P; // 恢复H,便移动到了下一个节点。
}
H = Q;