package com.shilei.dataStructure.linked;
/**
* @author shilei
* @date 2020/4/7-23:36
*/
public class SingleLinkedNode {
private SingleLinkedNode next;
private String msg;
public SingleLinkedNode(String msg){
this.msg=msg;
}
public void add(SingleLinkedNode node){
this.next=node;
}
//几道经典算法题
/*
* 1.链表的反转
*
* */
public SingleLinkedNode reverseLinked(){
SingleLinkedNode head = this;
SingleLinkedNode result = new SingleLinkedNode("不重要的节点");
while (head != null){
SingleLinkedNode temp = head.next;
head.next=result.next;
result.next=head;
head = temp;
}
return result.next;
}
/*
* 2.删除倒数第n个元素
*
* */
public void deleteNode(int n){
SingleLinkedNode before = this;
SingleLinkedNode after = before;
for (int i = 0;i<=n;i++){
after = after.next;//after 和 before 两个指针之间相差n个节点
}
while (after != null){
before = before.next;
after = after.next;
}
before.next = before.next.next;
}
}
单链表链表 LinkedList
最新推荐文章于 2025-12-01 13:49:36 发布
本文深入探讨了单链表的基本操作,包括链表的反转和删除倒数第n个元素的算法实现。通过具体代码示例,展示了如何在Java中实现这些经典数据结构算法。
1651

被折叠的 条评论
为什么被折叠?



