前言:
而今你们对“链表合并流程图”都比较关注,小伙伴们都需要剖析一些“链表合并流程图”的相关文章。那么小编同时在网摘上汇集了一些有关“链表合并流程图””的相关知识,希望你们能喜欢,姐妹们快快来了解一下吧!想法:
1、要合并两个有序的链表,首先想到要新生成第三个链表,所以要新建个虚拟节点;
2、新链表还需要一个指针,标记新链表的节点位置;
3、还需要两个指针,标记这两个有序链表的节点位置;
4、过程就是把其中一个链表的节点完全接到新链表为止,然后把另一个链表剩余的接上,返回虚拟节点的下一个节点即可。
public ListNode mergeTwoLists(ListNode p1, ListNode p2) { ListNode vhead = new ListNode(-1);//建个虚拟头结点方便连接后续节点 ListNode p = vhead;//变量节点,要往上面接节点 while (p1!=null && p2!=null){//都不为null的时候进行循环 if(p1.val > p2.val){ p.next = p2;//接p2节点 p2 = p2.next;//p2前移 }else { p.next = p1;//接p1节点 p1 = p1.next;//p1前移 } p = p.next;//无论接哪个节点,合并的链表都需要前移 } if(p1 != null){//p2链表接没了 p.next = p1;//把p1剩下的节点接上 } if(p2 != null){//p1链表接没了 p.next = p2;//把p2剩下的节点接上 } return vhead.next;//返回虚拟节点的后面节点就是合并后的}
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #链表合并流程图