1.给出一个单链表,不知道节点数N的值,怎样遍历一次就可以求出中间节点?
void searchmid(node *head, node *mid)
{
node *temp = head;
while(head -> next -> next != NULL)
{
head = head -> next -> next;
temp = temp -> next;
mid = temp;
}
}
2.用两个栈实现一个队列的功能。
思路:假如两个栈A和B,且都为空。可以认为栈A提供入队列功能,栈B提供出队列功能。
入队列:入栈A
出队列:若栈B不为空,直接弹出栈B的数据;否则,依次弹出栈A的数据,放入B栈中,再弹出栈B的数据。