求助c语言链表尾插函数问题

不知道为什么左边的是错误的

img

错误不在于第一个初始化,如果head为空,右侧也是错误代码
左边问题是,在for循环前,你的if条件是很奇怪的,p不等于空,为啥要p=p->next?完全不知道要干啥。其实右边也不对,应该是while(p->next != NULL),这样的目的是找到链表的尾节点。
然后for循环中 p = jj; p=jj->next完全就不知道你想干啥了。p连续赋值两次,啥意思?jj->next肯定是空,那p一直是空要干啥?正确的是右边的写法

主要在if那个p的判断上,if应该为while,p才能走到链表末尾,而p又不能为NULL,否则后面插入时没有插入点了。

左边的这种写完无法找到尾结点,因为当循环结束时p为NULL。

数据结构对单链表进行数据排序 http://bbs.csdn.net/topics/392201633