设结点data域为整型,求链表中相邻两结点data值之和为最大的第一结点的指针。
算法思路:设p,q分别为链表中相邻两个结点指针,求p->data + q->data为最大值的那一组,返回其相应的指针P即可。
如图所示:
因为上图中6+7的值最大所以返回6;
1.如果结点个数小于等于2,则退出则退出程序,已经没有比较的必要了。
2.构建变量和指针 int sum,* p ,*q;
p = H->next->next;
q = H->next;
sum = p->data + q->data; //两个相邻结点的和sum = 2 + 4;
3.结点向后移动;p结点向后移动 p = p->next;
q结点向后移动 q = q->next;
更新sum: sum = q ->data + p ->data;
第3步是需要循环的循环条件是:p->next != NULL;
函数源码:
linklist list_adjma