本文共 1305 字,大约阅读时间需要 4 分钟。
单链表翻转的两种方法
在计算机科学中,单链表的反转是编程中常见的问题之一。本文将详细介绍单链表反转的两种解决方案:一次性遍历反转和递归反转。
一次性遍历反转方法
下面是单链表一次性遍历反转的实现代码:
public static Node reverseNode(Node head) { Node pre = null; Node next = null; while (head != null) { next = head.next; head.next = pre; pre = head; head = next; } return pre;}
递归反转方法
此外,还有递归实现单链表反转的方法,代码如下:
public static Node reverse(Node node) { Node newNode = null; if (null == node || null == node.next) { return node; } else { Node temp = node.next; newNode = reverse(node.next); temp.next = node; node.next = null; } return newNode;}
链表操作示例
为了帮助理解,我们可以通过以下步骤操作链表:
列表节点操作
通过以下方法可以获取和设置节点值以及下一个节点:
public int getValue() { return value;}public void setValue(int value) { this.value = value;}public Node getNext() { return next;}public void setNext(Node next) { this.next = next;}
链表打印功能
可以通过以下方法打印链表:
public static void print(Node node) { System.out.print("节点值:" + node.getValue()); while (node.next != null) { node = node.next; System.out.print(" -> " + node.getValue()); } System.out.println();}
注意事项
以上方法均能实现链表反转功能,选择合适的反转方式取决于具体需求和链表长度等因素。
转载地址:http://dfryk.baihongyu.com/