java链表类的反转操作如何实现

   2024-09-28 6440
核心提示:在Java中,可以使用迭代或递归的方法来实现链表的反转操作。这里分别给出两种方法的实现:迭代方法:public class ListNode {int

在Java中,可以使用迭代或递归的方法来实现链表的反转操作。这里分别给出两种方法的实现:

迭代方法:
public class ListNode {    int val;    ListNode next;    ListNode(int x) { val = x; }}public ListNode reverseList(ListNode head) {    ListNode prev = null;    ListNode current = head;    ListNode next = null;    while (current != null) {        next = current.next; // 保存当前节点的下一个节点        current.next = prev; // 将当前节点的下一个节点指向前一个节点        prev = current; // 更新前一个节点为当前节点        current = next; // 更新当前节点为下一个节点    }    return prev; // 当current为null时,prev即为反转后的链表头节点}
递归方法:
public class ListNode {    int val;    ListNode next;    ListNode(int x) { val = x; }}public ListNode reverseList(ListNode head) {    if (head == null || head.next == null) {        return head;    }    ListNode newHead = reverseList(head.next); // 递归反转从head的下一个节点开始的链表    head.next.next = head; // 将原链表的第二个节点指向第一个节点    head.next = null; // 将原链表的第一个节点的下一个节点置为null    return newHead; // 返回反转后的链表头节点}

这两种方法都可以实现链表的反转操作,你可以根据自己的需求和喜好选择合适的方法。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号