求双向链表中的最大值,该如何解决

求双向链表中的最大值
struct   point{
          float   x,y,z;
          long   num;
          struct   point   *next,*prior;
          }a;
struct   struct   point   *point_head_1;
链表中已经读入了大量的点数据,如果我想找出其中Z坐标值最大的点,程序该怎么写呢。
请各位高手帮帮忙,拉我这个新手一把。
谢谢了

------解决方案--------------------
struct point *p = head;
float max_z = 0;
while(p){
if(p-> z > max_z)
max_z = p-> z;
p = p-> next;
}