我想知道这段代码是否正确删除了第一个节点,还是我必须将列表的头部作为指针传递?
void List::deleteFirst()
{
temp = head;
head = head->next;
delete temp;
}
这是班级List
class List
{
private:
struct node
{
int data;
node * next;
};
node * head;
node * curr;
node * temp;
public:
//List();
//void AddNode(int addData);
//void DeleteNode(int delData);
void deleteFirst();
//void PrintList();
};
答案 0 :(得分:5)
只有在以下情况下才有效:
$http("api/yourAPI")
.then(function (success) { ... } ,
function (error) {
if (error.status==401) {
// handle unauthorised
}
});
val splited_test=texts.transform(rdd => rdd.map(x=> Row.fromSeq(x.split(" "))))
splited_test.foreachRDD { rdd =>{
val fields = new Array[StructField](1)
fields(0)=(DataTypes.createStructField("text", StringType, true))
val schema = DataTypes.createStructType(fields)
val df= sqlContext.createDataFrame(rdd, schema)
}}
始终指向有效节点(列表不为空)。否则,您将导致未定义的行为。
但你真的不应该将new
存储为成员变量,而应该是一个局部变量。
head
变量也是如此,确保它确实需要成为成员。
此外,如果你删除一个对象(例如你的节点),所有剩余的指针都将变为无效,所以要小心你以后不要尝试访问它,例如。通过temp
指针。
答案 1 :(得分:-2)
Yup将删除head的原始值所指向的数据。