linked list java_java LinkedList的实例详解

本文详细介绍了Java中LinkedList的实现,包括如何使用LinkedList作为队列进行元素添加,并提供了两种链表反转的方法:递归反转和迭代反转。通过实例代码深入理解LinkedList的数据结构和操作。
摘要由CSDN通过智能技术生成

java LinkedList的实例详解

站在Java的角度看,玩队列不就是玩对象引用对象嘛!

实例代码:

public class LinkedList implements List, Deque {

Node first;

Node last;

int size;

public boolean add(E e) {

final Node l = last;

final Node newNode = new Node<>(l, e, null);

last = newNode;

if (l == null)

first = newNode;

else

l.next = newNode;

size++;

modCount++;

return true;

}

private static class Node {

E item;

Node next;

Node prev;

Node(Node prev, E element, Node next) {

this.item = element;

this.next = next;

this.prev = prev;

}

}

}

单链表反转:

/**

* 递归,在反转当前节点之前先反转后续节点

*/

public static Node reverse(Node head) {

if (null == head || null == head.getNextNode()) {

return head;

}

Node reversedHead = reverse(head.getNextNode());

head.getNextNode().setNextNode(head);

head.setNextNode(null);

return reversedHead;

}

/**

* 遍历,将当前节点的下一个节点缓存后更改当前节点指针

*

*/

public static Node reverse2(Node head) {

if (null == head) {

return head;

}

Node pre = head;

Node cur = head.getNextNode();

Node next;

while (null != cur) {

next = cur.getNextNode();

cur.setNextNode(pre);

pre = cur;

cur = next;

}

//将原链表的头节点的下一个节点置为null,再将反转后的头节点赋给head

head.setNextNode(null);

head = pre;

return head;

}

对于数组问题,一般我们要新建数组,必要时移动下标

以上就是java LinkedList 的实例,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值