Loading

合并两个排序的链表,从尾到头打印链表,用两个栈实现队列

一.合并两个排序的链表

输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的

解决方案:新建两个节点,一个用于记录开始位置,一个用于移动排序

ListNode help=new ListNode();//新建节点,用于移动排序,相当于一个中间变量
ListNode end=help;//记录开始位置
while(l1!=null&&l2!=null)//如果l1和l2都不为空,执行比较
{
   
   if(l1.val<l2.val) 
   {
   
     help.next=l1;
     l1=l1.next
   }else{
   
   help.next=l2;
   l2=l2.next;
   }
   help=help.next;
}
help.next=l1!=null?l1:l2;
return end.next;

二.从尾到头打印链表

输入一个链表的头节点,从尾到头用数组返回节点值
解决方案:
1.首先计算出链表的长度,定义一个数组,然后遍历链表倒序存放到数组中

int length=0;
while(head!=null)
{
   
  length++
posted @ 2020-09-15 21:14  文牧之  阅读(8)  评论(0)    收藏  举报  来源