while(ptr -data !valpreptr ptrptr ptr -nextpreptr -next ptr -nextfree(ptr)return startstruct node *delete_after(struct node *startstruct node *ptr*preptrint valprintf("\ enter the value after which the node has to deleted ")scanf("% "&val)ptr startpreptr ptrwhile(preptr -data !valpreptr ptrptr ptr -nextpreptr -next=ptr -nextfree(ptr)return startstruct node *delete_list(struct node *startstruct node *ptr/lines - were modified from original code to fix unresposiveness in output window if(start!=null)ptr=startwhile(ptr !nullprintf("\ % is to be deleted next"ptr -data)start delete_beg(ptr)ptr startreturn startstruct node *sort_list(struct node *startstruct node *ptr *ptr int tempptr startwhile(ptr -next !nullptr ptr -nextwhile(ptr !nullif(ptr -data ptr -datatemp ptr -dataptr -data ptr -dataptr -data tempptr ptr -nextptr ptr -next