java给链表赋值_Java链表操作代码
/****/
packagecom.cherish.SwordRefersToOffer;/***@authoracer
**/
public classtest_22链表中倒数第k个节点 {/****/
publictest_22链表中倒数第k个节点() {//TODO 自动生成的构造函数存根
}public static classListNode{private intval;
ListNode next= null;
ListNode(intval){this.val =val;
next= null;
}
}/***@paramargs*/
public static voidmain(String[] args) {//TODO 自动生成的方法存根
ListNode head = new ListNode(1);//给一个链表赋值
for(int i = 2;i<10;i++) {
insertNodeFromTail(head,newListNode(i));
}
printListNode(head);
System.out.println(FindKthToTail(head,4).val);
System.out.println(listNodeLength(head));
System.out.println(deleteFromIndex(head,4));
printListNode(head);
System.out.println(listNodeLength(head));
System.out.println(FindKthToTail(head,4).val);
}//找到倒数第k个节点
public static ListNode FindKthToTail(ListNode head,intk) {if(head == null||k <= 0) {return null;
}
ListNode p1=head;
ListNode p2=head;for(int i = 1;i
p1=p1.next;
}else{return null;
}
}while(p1.next != null) {
p1=p1.next;
p2=p2.next;
}returnp2;
}//从头部插入新节点
public static voidinsertNodeFromHead(ListNode head,ListNode newNode)
{
newNode.next=head;
head=newNode;
}//从尾部插入新节点
public static voidinsertNodeFromTail(ListNode head,ListNode newNode)
{if(head == null) {
head=newNode;return;
}
ListNode temp= head;//用temp代替head去遍历找到最后一个节点,一定不要用head自己去遍历,不然就找不到链表头了
while(temp.next != null) { //下一节点不为空
temp =temp.next;
}
temp.next= newNode;//找到最后一个节点后把新节点插入进去
}//计算链表的长度
public static intlistNodeLength(ListNode head) {if(head ==null) {return 0;
}
ListNode temp=head;int length = 0;while(temp.next != null) {
length++;
temp=temp.next;
}returnlength;
}//从特定位置删除链表
public static boolean deleteFromIndex(ListNode head,intdeleteIndex)
{if(head == null || deleteIndex<1) {return false;
}if(deleteIndex == 1) {
head=head.next;return true;
}int index = 1;
ListNode temp=head;
ListNode deleteNode;while(temp.next != null && index
index++;
temp=temp.next;
}
deleteNode=temp.next;
temp.next=deleteNode.next;return true;
}//按顺序输出链表
public static voidprintListNode(ListNode head)
{
ListNode temp=head;while(temp.next != null)
{
System.out.print(temp.val);
System.out.print("\t");
temp=temp.next;
}
System.out.println();
}
}
java给链表赋值_Java链表操作代码相关推荐
- java 非静态 初始化_Java非静态代码块和实例初始化过程
1 非静态代码块 非静态代码块特点 ①可以为实例变量(非静态的属性)初始化 ②每次创建对象的时候,都会执行一次,且先于构造器执行 ③若有多个非静态的代码块,那么按照定义的顺序从上到下依次执行 ④代码块 ...
- c++ listnode 赋值_java链表ListNode_DList购买_C++之ListNode
java链表ListNode_DList购买_C++之ListNode 时间:2020-07-06 22:10:05 来源:网络投稿 编辑:周瑜 浏览:次 单链表,弄清楚可stl中list的区别Lis ...
- java 链表 传递_java 链表 传递过程中的问题
具体情况如下一共有三个类,分别是主类main,从TXT文件中读取入链表的类read,还有一个是对链表内容进行查询的类inquiryread读取并没有问题,read中有加入检测M.List.add(A) ...
- java.util.list 赋值_java.util(ArrayList)
public class ArrayList extends AbstractList implements List, RandomAccess, Cloneable, java.io.Serial ...
- java有什么字符串_Java 中操作字符串都有哪些类?它们之间有什么区别
1. String.StringBuffer.StringBuilder 原文出自<编写高质量代码:改善 Java 程序的 151 个建议> CharSequence 接口有三个实现类与字 ...
- java反射对象赋值_Java反射详解
反射(Reflection)能够让运行于 JVM 中的程序检测和修改运行时的行为. Class类提供了以下方法 四个public方法,用于获取某个类的构造方法: Constructor getCons ...
- java 泛型集合示例_Java 泛型(示例代码)
1.泛型的由来 我们先看下面这段代码: 报错信息如下: 也就是 集合中第二个数据是 Integer,但是我们取出来的时候将其转换为 String 了,所以报错. 那么这个如何解决呢? ①.我们在遍历的 ...
- java静态类如何赋值_Java class对象说明 Java 静态变量声明和赋值说明
先看下JDK中的说明: java.lang.Object java.lang.ClassInstances of theclass Class represent classes and interf ...
- java long类型赋值_Java语言编程第22讲——如何理解“Java是强类型语言”
强类型语言,即Strongly Typed Language,从字面上理解,就是Java语言对类型要求很严格. Java语言对类型要求有哪些呢? 1.变量必须先声明类型,然后使用 例如: int i; ...
- java 类继承实例_java继承例子代码,java类的继承示例
下面要给大家带来的是一个java类的继承的例子,一起来看看详细的代码吧! 一.题目 1.定义一个Person类,这个类的属性有三个,分别是name.age.color. 类有构造方法给三个属性赋值. ...
最新文章
- 面向JavaScript开发人员的Adobe AIR与Dreamweaver
- java如何获得集合的长度_Java集合长度
- 任正非就“注册姚安娜商标”事件道歉:为防恶意抢注,第一次公权私用
- 有了设计类导航网站,从此就不再需要瞎找了
- java与安卓接口_Android-Java-接口Interface
- android学习笔记---1.为应用添加新的Activity,中使用Intent(意图),结果码,请求码,得到新打开Activity 关闭后返回的数据,Bundle类的作用
- axure rp9是什么软件?如何在Mac中安装使用?
- 为计算机构建安全方案,计算机科学系安全管理标准化建设实施方案
- java比较两个类的值不相同_java 反射---------比较两个相同类型的对象相同属性的属性值是否相同的具体调用...
- 循环冗余校验码(计算机组成原理12)
- apple pencil二代值不值得买?iPad电容笔测评
- 一文读懂自然语言处理NLP
- C++SLT入门简介
- IntelliJ IDEA -2017.3.2(Ultimate Edition)的激活方式
- 梳理公司的组织架构 --- 组合模式
- 九个值得一试的跨平台移动应用开发工具
- 印象笔记如何取消首字母大写
- 没有订单,可以自行申请BSCI认证吗?
- m基于FPGA的积分梳状CIC滤波器verilog设计
- 小学计算机课标教学大纲的依据,中小学教学大纲为何改成课程标准?