頭插法插入鏈表節點

/*
名稱:頭插法插入鏈表節點
功能:在鏈表頭節點後插入一個鏈表節點
接收:鏈表頭節點head, 插入節點的int型數據
返回:int
*/
int insertLink_head(struct node* L, int data){
	//定義一個指向鏈表節點的指針
	struct node *nodePtr;
	//當鏈表爲空鏈表時
	if ((L->next) == NULL){
		//給節點分配空間
		if (!(nodePtr = (struct node*)malloc(sizeof(struct node))))
			return -1;
		//把值付給新節點的數據域
		nodePtr->data = data;
		//把心節點的指針域置空
		nodePtr->next = NULL;
		//把新節點連在頭節點後,完成插入
		L->next = nodePtr;
	}
	//當鏈表非空時
	else{
		//給節點分配空間
		if (!(nodePtr = (struct node*)malloc(sizeof(struct node))))
			return -1;
		//把值付給新節點的數據域
		nodePtr->data = data;
		//讓新節點的指針指向鏈表第二個節點(頭節點後的第一個節點)
		nodePtr->next = L->next;
		//讓頭節點指向新節點,完成插入  注意順序,如果先讓頭節點的next指向了新節點 則會出現斷鏈的情況
		L->next = nodePtr;
	}
	return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章