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;
}
}
参考文档:
https://blog.csdn.net/paranior/article/details/114579283
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;
}
}
版权声明:本文为u011441473原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。