遍历列表的有效方法是什么?

问题描述

遍历链接列表直到a <- list.files(path="",pattern="*.csv",recursive = T,full.names = T) for (i in a){ b <- read.csv(i,skip = 0,header = F,nrows = 1,as.is= T) df=read.csv(i,skip = 1,header = T) df=df %>% mutate( new_col = b$V1 ) Combined_file=rbind(Combined_file,df) } (用于遍历列表的临时变量)和temp!=NULL之间有什么区别?

temp->next!=NULL

while(temp!=NULL)
{
cout<<temp->data;
temp=temp->next;
}

解决方法

区别是第一个将在链接列表中打印所有节点的数据。 但是第二个将打印除最后一个节点以外的所有节点数据。由于最后一个节点的下一个指针将指向null,因此while循环内的条件将为false,并且不会对最后一个节点执行。

,

我要给出的主要答案是,上述算法可以等同地用于遍历链表。就是这里。

第一种算法: 指针先移动。然后,它检查当前节点。如果不等于null,则输出该值并将指针前进到下一个节点。遍历完成后,指针指向空值。

第二种算法: 指针检查下一个节点。如果不等于null,则将指针前进到该指针并输出该值。遍历完成后,指针指向最后一个节点。

,

使用第二种方法时,请在启动while循环之前确保temp变量不为NULL。如果列表中没有项目,则在while循环的第一行尝试访问temp->next时会遇到异常。

另一方面,即使temp变量为NULL,第一种方法也不会导致此错误。