java给链表赋值_Java链表操作代码[通俗易懂]

java给链表赋值_Java链表操作代码[通俗易懂]/****/packagecom.cherish.SwordRefersToOffer;/***@authoracer**/publicclasstest_22链表中倒数第k个节点{/****/publictest_22链表中倒数第k个节点(){//TODO自动生成的构造函数存根}publicstaticclassListNode{privateintval;ListNode…

大家好,又见面了,我是你们的朋友全栈君。

/****/

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();

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/134120.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vue等单页面应用及其优缺点

    vue等单页面应用及其优缺点先来说说什么是单页面应用和多页面应用:单页面应用(SPA),通俗一点说就是指只有一个主页面的应用,浏览器一开始要加载所有必须的html,js,css。所有的页面内容都包含在这个所谓的主页面中。多页面(MPA),就是指一个应用中有多个页面,页面跳转时是整页刷新。单页面的优点和缺点:优点:1、用户体验好,快,内容的改变…

    2022年6月24日
    29
  • PHP filemtime() 函数

    PHP filemtime() 函数

    2021年11月7日
    46
  • SQL SERVER与C#中数据类型的对应关系

    对应关系表SQLServer2000 http://hovertree.com/menu/sqlserver/C#CodeSmith数据类型取值范围数据类型取值范围空值代

    2021年12月27日
    31
  • windows10 安装密钥_安装了pycharm还需要安装anaconda

    windows10 安装密钥_安装了pycharm还需要安装anaconda前言Python环境配置,有很多种组合方式,但是比较流行的是:Anaconda+Pycharm.第一部分:下载及安装Anaconda1.下载Anaconda安装包,官网下载地址:https://www.anaconda.com/download/选择64-bit的python3.7下载安装Anaconda下载后的文件为.exe文件,双击该文件进入安装界面。  2.1、依次…

    2022年8月29日
    1
  • 相机技术–摄像头传感器的感光区尺寸规格

    相机技术–摄像头传感器的感光区尺寸规格摄像头传感器的尺寸,一般主要是指对角线的尺寸,先上图,这个东西现在已经完全是历史遗留产物,据说这个尺寸的术语来自古老的Vidicon真空管(vacuumtubes)图像传送传感器;名称与具体尺寸关系其实不是很密切,大部分都维护了4:3(Horizontal:Vertical)宽高比。参考:ImagingElectronics101:UnderstandingCameraSensorsforMachineVisionApplications…

    2022年5月8日
    95
  • idea创建Java web项目_idea导入maven项目

    idea创建Java web项目_idea导入maven项目准备:1.安装jdk1.72.安装tomcat1.8一、创建并设置javaweb工程1.创建javaweb工程File–>New–>Project…设置工程名字:创建完成后工程结构如下: 2.Web工程设置2.1在WEB-INF目录下点击右键,New–>Directory,创

    2022年9月19日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号