链表是一种动态的数据结构,在创建链表时无须知道链表的长度。
代码实现:
/**
* 链表的实体类型
*/
public class ListNode{
int value; // 节点的值
ListNode listNode; // 类似于指针
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
public ListNode getListNode() {
return listNode;
}
public void setListNode(ListNode listNode) {
this.listNode = listNode;
}
}
/**
* 在链表的末尾插入一个值
*
* @param headNode 链表的头结点
* @param value 节点的值
* @return
*/
private ListNode insertNode(ListNode headNode, int value) {
// 为值生成一个新的节点
ListNode newNode = new ListNode();
newNode.setValue(value);
newNode.setListNode(null);
if (headNode == null) {
// 如果原链表为null, 则新节点就是头结点
headNode = newNode;
} else {
// 找到末尾的节点
ListNode node = headNode;
while (node.getListNode() != null) {
node = node.getListNode();
}
// 在尾节点插入新的节点
node.setListNode(newNode);
}
return headNode;
}