济南免费网站制作,公司网站内容规划,做网站_你的出路在哪里,屯济宁做网站公司目录
方法一
算法视频分析
方法二 算法视频分析 Q#xff1a;什么是“就地”捏#xff1f;
A#xff1a;就是指辅助空间复杂度为O(1)#xff0c;通俗一点来说就是不需要再开辟一块空间来实现算法。 特别说明#xff1a; 笔者第一次录制视频#xff0c;言语有些不顺什么是“就地”捏
A就是指辅助空间复杂度为O(1)通俗一点来说就是不需要再开辟一块空间来实现算法。 特别说明 笔者第一次录制视频言语有些不顺还望大家见谅如有错误请大家指出。
方法一 头插法将头结点摘下来然后从第一结点开始一次插入到头结点后面头插法建立单链表直到最后一个结点为止。
LinkList Reverse_1(LinkList L)
{LNode* p, * r; //p为工作指针r为p的后继以防止出现断链p L-next; //从第一个元素结点开始L-next NULL; //先将头结点L的next域置为NULLwhile (p ! NULL) //依次将元素结点断开{r p-next; //存放p的后继p-next L-next; //将p结点插入到头结点之后L-next p;p r;}return L;
}算法视频分析 方法二 假设prep和r指向3个结点。经过若干操作之后*pre之前的结点的指针都已经调整完毕它们的next都指向其原前驱节点。现在令*p结点的next域指向*pre结点注意到一旦调整指针的指向*p的后继结点就会断开因此需要用r来指向原*p的后继结点。注意两点一是再处理第一个结点时应将其next域置为NULL 而不是指向头结点因为它将作为新表的尾结点二是处理完最后一个结点后需要将头结点的指针指向它。
LinkList Reverse_2(LinkList L)
{LNode* pre, * p L-next, * r p-next;p-next NULL; //处理第一个结点while (r ! NULL) //r为空的时候说明是最后一个结点{pre p; //依次遍历p r;r r-next;p-next pre; //指针反转}L-next p; //处理最后一个结点return L;
} 算法视频分析