本文共 1660 字,大约阅读时间需要 5 分钟。
package com.jokin.learn.Jdk18;/** * 自定义的单链表节点 */public class LinkNode { LinkNode next = null;// 节点的引用,指向下一个节点 int data;// 节点的对象,即内容 public LinkNode() { this.data = data; } public LinkNode(int data) { this.data = data; }}
参考文档:
package com.jokin.learn.Jdk18;public class MyLink { LinkNode head = null; // 头节点 /*LinkNode next = null;// 节点的引用,指向下一个节点 int data;// 节点的对象,即内容*/ public MyLink (LinkNode linkNode){ if (linkNode!=null){ head=linkNode; } } /* *//** * 内部类定义单链表的节点结构 *//* class LinkNode { LinkNode next = null;// 节点的引用,指向下一个节点 int data;// 节点的对象,即内容 public LinkNode(int data) { this.data = data; } }*/ /** * 链表添加结点: * 找到链表的末尾结点,把新添加的数据作为末尾结点的后续结点 * @param data */ public void addNode(int data){ LinkNode newNode = new LinkNode(data);// 实例化一个节点 if (head == null) { head = newNode; return; } LinkNode tmp = head; //循环,当next不是null,不是最后一项,继续往下遍历 while (tmp.next != null) { tmp = tmp.next; } tmp.next = newNode; } /** * https://blog.csdn.net/paranior/article/details/114579283 * 反转链表 * @param head * @return */ public LinkNode reverseLink(LinkNode head){ if(head==null){ return null; } LinkNode cur = head; LinkNode pre=null; LinkNode temp = new LinkNode(); while (cur!=null){ temp =cur.next; //完成指针引用转化 cur.next=pre; pre=cur; cur=temp;//形成指针cur向后推进 } return pre; }}