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)
上一篇 2022年5月2日 下午1:20
下一篇 2022年5月2日 下午1:40


相关推荐

  • pycharm和python解释器安装

    pycharm和python解释器安装1 PyCharm thePythonIDE 去官网下载 2 勾选第一个在桌面创建一个快捷图标 然后下一步等待安装即可

    2026年3月27日
    2
  • 洗衣收银管理软件

    洗衣收银管理软件郑州东群科技是专业为洗衣连锁企业 洗衣店开发洗衣管理软件的 采用 SQLSERVER 数据库在 C NET 平台上开发 模块化结构设计 性能优越 安全稳定 操作便捷 是专业为洗衣连锁企业 洗衣店量身定做 我们将依据您的合理需求及行业发展方向和国际先进管理模式接轨 打造中国洗衣管理第一平台 软件功能 衣物管理 1 可根据洗衣店需求设置收衣流程 单件收衣流程只需 5 秒 详细记录衣物

    2026年3月17日
    1
  • 留意是啥意思_初听不知曲中意八句

    留意是啥意思_初听不知曲中意八句弹到当时留意处,谁是相如

    2022年4月21日
    59
  • JQuery安装与下载教程(efficiency)

    JQuery安装与下载教程(efficiency)一.认识(1)jQuery文件有两个常用版本:一个是1.x版本,另一个是3.x版本。3.x版本是目前的最新版本,与1.x版本有着相同的API。1.x版本兼容IE6、IE7和IE8,而3.x版本不兼容IE6、IE7和IE8。在实际开发中,我们建议使用1.x版本,而不是3.x版本,原因有两个:1.现在很多网站还是要考虑兼容IE6~IE8;2.大多数jQuery插件不支持3.x版本,只支持1.x版本。不管是1.x版本,还是3.x版本

    2022年6月5日
    31
  • python如何抛出异常_python自定义异常

    python如何抛出异常_python自定义异常python抛出异常的完整写法

    2022年10月18日
    7
  • jsonfield注解不生效(write javabean error fastjson)

    @jsonfield看源码它可以作用于字段和方法上。引用网上说的,一、作用field@jsonfield作用在field时,其name不仅定义了输入key的名称,同时也定义了输出的名称。但是我在使用中,发现并不如上所说。例如@jsonfield(name=”project_id”)privatelongprojectid发现bean转json的时候并是”project_id”:xxx的形式,…

    2022年4月17日
    67

发表回复

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

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