以下是引用Devil_W在2011-10-20 14:02:29的发言:
三个指针,一个遍历,一个记录当前最大值得地址,一个记录最大值的前一个地址。
最后删除最大值指针
三个指针是不好做的, 我用了四个指针,一个用于跟随遍历的那个指针...
这么个简单的问题却定义了四个指针
ListNode findMaxPrevNode(List list)
{
ListNode p, q, prev, max;
prev = q = list->head;
for (max = p = list->head->next; p; p = p->next)
{
if (p->item > max->item)
{
prev = q;
max = p;
}
q = p;
}
return prev;
}
[
本帖最后由 BlueGuy 于 2011-10-20 14:50 编辑 ]