JAVA链表测试代码

测试模板
class ListNode { // 链表类
	int val;
	ListNode next = null;

	public ListNode(int val) {
		this.val = val;
	}
}

class Solution {

	public static void Myprint(ListNode t1) // 输出链表
	{
		while (t1 != null) {
			System.out.println(t1.val);
			t1 = t1.next;
		}
	}

	//这里可写相关操作函数

	public static void main(String[] args) {
		ListNode t1 = new ListNode(1);
		ListNode t2 = new ListNode(2);
		ListNode t3 = new ListNode(3);
		ListNode t4 = new ListNode(4);
		ListNode t5 = new ListNode(5);

		t1.next = t2;
		t2.next = null;
		System.out.println("--------链表t1-------");
		Myprint(t1);
		
		t3.next = t4;
		t4.next = t5;
		t5.next = null;
		System.out.println("--------链表t3-------");
		Myprint(t3);
		
		//相关操作函数
	}
}
例子:合并两个排序的链表
class ListNode { // 链表类
	int val;
	ListNode next = null;

	public ListNode(int val) {
		this.val = val;
	}
}

class Solution {

	public static void Myprint(ListNode t1) // 输出链表
	{
		while (t1 != null) {
			System.out.println(t1.val);
			t1 = t1.next;
		}
	}

	public static ListNode Merge(ListNode list1, ListNode list2) { // 两个链表的归并排序
		// 归并排序的思想
		if (list1 == null) {
			return list2;
		}
		if (list2 == null) {
			return list1;
		}
		ListNode head = new ListNode(-1);
		ListNode list3 = head;
		while (list1 != null && list2 != null) {
			if (list1.val < list2.val) {
				list3.next = list1;
				list1 = list1.next;
			} else {
				list3.next = list2;
				list2 = list2.next;
			}
			list3 = list3.next;
		}

		while (list1 != null) {
			list3.next = list1;
			list1 = list1.next;
			list3 = list3.next;
		}

		while (list2 != null) {
			list3.next = list2;
			list2 = list2.next;
			list3 = list3.next;
		}
		return head.next;
	}

	public static void main(String[] args) {
		ListNode t1 = new ListNode(1);
		ListNode t2 = new ListNode(2);
		ListNode t3 = new ListNode(3);
		ListNode t4 = new ListNode(4);
		ListNode t5 = new ListNode(5);

		t1.next = t2;
		t2.next = null;
		System.out.println("--------链表t1-------");
		Myprint(t1);
		
		t3.next = t4;
		t4.next = t5;
		t5.next = null;
		System.out.println("--------链表t3-------");
		Myprint(t3);
		
		System.out.println("--------t1与t3合并的链表-------");
		ListNode r = Merge(t1, t3);
		Myprint(r);
	}
}

全部评论

相关推荐

时雨h:人生就像站在岔路口,两个方向都可以先了解了解,就像罗伯特·弗罗斯特诗里说的,“黄色的树林里分出两条路,可惜我不能同时去涉足” ,这两个方向就如同那两条路,每条都有独特的风景与未知。 除了自行探索,也可以看看自己学校往年同专业学长学姐的去向,每一届大致都差不多,这能帮你找到自己的定位。多跟他们交流交流,听听他们在不同选择中的收获与遗憾,那些过来人的经验会成为你前行路上的微光。 做出选择后,固然要坚定自己的选择,勇往直前地走下去,但也别忘了,那条未选择的路也始终在那里,它或许代表着另一种可能,另一种人生轨迹。偶尔回望,它能让你更加明白自己当下选择的价值,也能让你在前行的路上,多一份思考与从容。
点赞 评论 收藏
分享
小厂面经,也是我的处女面(30min)1.自我介绍2.spring&nbsp;boot的自动装配原理(好多类和接口的单词都忘了全称是啥了,就说了记得的单词,流程应该说对了吧)3.有用过redis吗?主要是用在实现什么功能(说了技术派用redis的zset来实现排行榜)5.有了解过Redisson吗?讲一下对于分布式锁的了解以及在什么场景下应用(说了秒杀场景)6.对mysql有了解吗?包括它的索引优化和创建(把想起来的全说了)7.了解设计模式吗?比如单例模式,为什么要使用单例模式,它的优点是什么(昨天刚看的设计模式)8.工厂模式有了解吗?主要的使用场景是?(也是昨天刚看的)9.场景题:有7个服务器,需要在早上十点定时的向数据库中的用户表中的用户发短信,如果做到发送的消息不重复,且如果发送失败了需要知道是到哪个用户失败了,这样下次就直接从这个用户开始(我答了用spring&nbsp;task来实现定时,用分布式锁来保证只有一份服务器可以发送消息,用消息队列来存储消息,然后用消息确认机制来保证错误信息的记录,以及在数据库或者业务层面完成消息消费的幂等性)10.场景题:如果在系统启动的时间就将数据库的所有用户相关的信息都读到一个hashmap中(这个没啥思路,没答好)27届的投了一个星期终于有一个面试了,大部分公司都只招26的
inari233:已oc,拒了
查看9道真题和解析
点赞 评论 收藏
分享
我看标题以为40W,我觉得最差也得40k,点进去一看40块。你永远想不到客户的预算有多低...&nbsp;要求&ldquo;前端使用vue+element开发一个pc端宠物网站和vue+vant开发一个移动端网站,类型是宠物网站的。客户预算40&rdquo;&nbsp;全网最受欢迎的嵌入式面经面经一共32篇文章,12w+字数,包含全部最新的面试必问考点,4.7w+同学学习,2800+订阅,非常适合在找工作面经薄弱的同学,3000+订阅还会涨价,提前订阅提前享受,持续更新中。原帖链接:https://www.nowcoder.com/creation/manager/columnDetail/MJNwoMc
野猪不是猪🐗:哎呀,看来这位客户预算确实挺让人意外的呢!不过,别灰心,有时候客户的预算有限,但项目完成后说不定能带来意想不到的收获呢!😊 至于你提到的嵌入式面经,听起来好像很棒的样子!如果你对求职有帮助,那确实值得订阅学习哦!悄悄告诉你,点击我的头像,我们可以私信聊聊更多求职经验和技巧哦~🎉 对了,你对Vue和Element/Vant的开发有什么疑问或者想要分享的经验吗?我们可以一起探讨一下~😉
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务