选择题第六个
str[0]的地址指代的是次一级的元素,所以p加的时候是加一个元素 而不是一行。
而且strlen(char *)的含义是从形参开始的地方到字符结束的地方的长度。
所以选择5。
算法题第二个
分析:(假设链表无头结点)
我们可以把整个链表分成多个长度为 k 的子链表, 然后,我们再反转每一个子链表(递归)。问题的关键是我们需要把每个子链表再连接起来。所以,对每一个子链表操作以后,我们需要返回该子链表的头(C),然后,我们设置前一个子链表的最后一个node,把它的next 设置成下一个链表返回的头(C),这样,所有的子链表就连接起来了。
LinkNode* Reverse(LinkNode *C,int k)
{
LinkNode *pre,*cur,*ne;
int count=0;
cur=C;
ne=pre=NULL;
while(cur!=NULL&&count<k)
{
ne=cur->next;
cur->next=pre;
pre=cur;
cur=ne;
count++;
}
if(ne!=NULL)
C->next=Reverse(ne,k);
return pre;
}
本文详细解析了链表反转算法,包括如何将整个链表划分为多个长度为k的子链表,每反转一个子链表后如何将其与其他子链表正确连接。通过具体代码实现,深入理解链表操作与递归应用。
442

被折叠的 条评论
为什么被折叠?



