c语言合并两个有序链表 链表的方式怎么实现2个链表相加?
浏览量:1706
时间:2021-03-13 20:27:59
作者:admin
链表的方式怎么实现2个链表相加?
如果头节点不同的话,这一定是个单链表,单链表有同一个交点,则后面都会相交,也就是说这是个Y字型的链表。 小数据,可以用哈希,比较好写。 但有更好的方法:先各自走一遍,记住长度,然后假设长的那个链表长度为X,另一个为Y,让长的那个往前走X-Y个长度,然后两个链表各自用一个指针同时往前走,当遇到相同的节点时找到答案。 时间:O(n),空间O(1)
有关c语言两个顺序链表的合并?
two point + 链表尾插法。定义两个指针p1.p2分别指向两个链表L1和L2的开始结点。然后外层一个while(p1&&p2),两两比较指针指向结点的值,值小的结点就尾插进新的链表L3,并且值小的指针后移,大的指针不动。如果是两个指针指向相等大小结点,就把指针都往后移。外层while循环结束,L3就是得到的非递增链表。
c语言合并两个有序链表 数据结构两个链表合并排序 将两个链表合并成一个链表
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。