<p> 给定一个单链表的头结点he<u>ad</u>(该结点有值),长度为n的无序单链表,对其按升序排序后,返回新链表。如当输入链表 {3,1,4,5,2} 时,经升序排列后,原链表变为 {1,2,3,4,5},对应的输出为 {1,2,3,4,5}。</p>
讯享网
讯享网<strong>代码实现</strong></p> <u>C语言</u>代码:</p> 讯享网</p> structListNode*sortInList(structListNode*head){ if(head==NULL) returnNULL; //添加一个头指针,指向head,方便后面的排序 structListNode*H; H=malloc(sizeof(structListNode)); H->next=head; //第一步:定义三个指针 structListNode*p,*q,*r; //第二步:将p指向head,并将头指针断开链接 p=H->next; H->next=NULL; //遍历链表 while(p) { //第三步:q指向当前要操作的结点,p后移,r指向头指针 q=p; p=p->next; r=H; //第四步:将r的后继数值与当前操作结点q的值进行比较 //若条件成立,r后移一个位置后,继续进行比较 //若条件不成立,跳出while循环,将q指向r的后继,r的后继指向q while(r->next&&r->next->val< q->val) r=r->next; q->next=r->next; r->next=q; } //第五步:返回头指针H的后继结点链表 returnH->next; } 讯享网</p> <strong>图解代码</strong></p> 讯享网第一步:定义三个指针</p> <img src="https://file1.elecfans.com/web2/M00/B1/F1/wKgaomVoJECAddTPAAA7mT6iTSc533.png" alt="12132bb4-8f3f-11ee-939d-92fbcf53809c.png" /></p> 讯享网第二步:将p指向head,并将头指针断开链接</p> <img src="https://file1.elecfans.com/web2/M00/B1/F1/wKgaomVoJECADaIWAAC8r2vhnNw149.png" alt="1223a57a-8f3f-11ee-939d-92fbcf53809c.png" /></p> 讯享网第三步:q指向当前要操作的结点,p后移,r指向头指针</p> <img src="https://file1.elecfans.com/web2/M00/B1/F1/wKgaomVoJECAQJZjAADMtHI1JQs742.png" alt="-8f3f-11ee-939d-92fbcf53809c.png" /></p> 讯享网第四步:将r的后继数值与当前操作结点q的值进行比较:若条件成立,r后移一个位置后,继续进行比较;若条件不成立,跳出while循环,将q指向r的后继,r的后继指向q</p> <img src="https://file1.elecfans.com/web2/M00/B1/F1/wKgaomVoJECAG5qmAADImf15tQ4641.png" alt="1289a6d6-8f3f-11ee-939d-92fbcf53809c.png" /></p> 讯享网<img src="https://file1.elecfans.com/web2/M00/B1/F1/wKgaomVoJEGAQUHHAACSvz5myFY998.png" alt="129f9cf2-8f3f-11ee-939d-92fbcf53809c.png" /></p> <img src="https://file1.elecfans.com/web2/M00/B1/F1/wKgaomVoJEGASMkvAADNjMYAk7s659.png" alt="12b0eee4-8f3f-11ee-939d-92fbcf53809c.png" /></p> 讯享网<img src="https://file1.elecfans.com/web2/M00/B1/F1/wKgaomVoJEGAWkn1AAC6Bt6WowA907.png" alt="12c50fb4-8f3f-11ee-939d-92fbcf53809c.png" /></p> <img src="https://file1.elecfans.com/web2/M00/B1/F1/wKgaomVoJEGAa4wzAADHtkYpcCY148.png" alt="12e40810-8f3f-11ee-939d-92fbcf53809c.png" /></p> 讯享网<img src="https://file1.elecfans.com/web2/M00/B1/F1/wKgaomVoJEGAcXJhAADQqnnD21I181.png" alt="12f8a22a-8f3f-11ee-939d-92fbcf53809c.png" /></p> <img src="https://file1.elecfans.com/web2/M00/B1/F1/wKgaomVoJEGAUUvfAACttOPfQM8975.png" alt="1314ce32-8f3f-11ee-939d-92fbcf53809c.png" /></p> 讯享网第五步:返回头指针H的后继结点链表</p> <img src="https://file1.elecfans.com/web2/M00/B1/F1/wKgaomVoJEGAOtynAAEByjdqxfI320.png" alt="fe-8f3f-11ee-939d-92fbcf53809c.png" /></p> 讯享网审核编辑:汤梓红</p>

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/199670.html