上一篇博文的代码量有点大,所以做了一下优化。
上一篇博文的地址:https://blog.youkuaiyun.com/new_buff_007/article/details/98503057
public void reverseList(Person headNode){
if(headNode.next == null || headNode.next.next == null){
return;
}
Person cur = headNode.next;// 当前节点
Person next = cur.next;// 当前节点的下一个节点
Person newHead = new Person(0,"");
while(cur != null){
next = cur.next;
cur.next = newHead.next;
newHead.next = cur;
cur = next;
}
headNode.next = newHead.next;
}
public class Person {
public int id;
public String name;
public Person next;
public Person(int id, String name) {
this.id = id;
this.name = name;
}
@Override
public String toString() {
return "Person{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
Person person1 = new Person(1,"zs");
Person person2 = new Person(2,"ls");
Person person3 = new Person(3,"ww");
SingleLinkedList single = new SingleLinkedList();
single.add(person1);
single.add(person2);
single.add(person3);
// 得到头结点
single.show(single.getHead());
single.reverseList(single.getHead());
single.show(single.getHead());
单链表逆序实现
本文详细介绍了一种优化后的单链表逆序算法实现。通过一个具体的代码示例,展示了如何将一个单链表的数据顺序反转,同时保持链表结构不变。首先创建了一个新的头节点,然后遍历原链表,调整每个节点的指针方向,最终实现逆序。代码中包含了Person类的定义和链表操作的方法。
501

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



