首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在java中使用temp变量递归地反转链表。

在Java中使用temp变量递归地反转链表可以通过以下步骤实现:

  1. 定义一个链表节点类,包含一个值属性和一个指向下一个节点的指针属性。
代码语言:txt
复制
class ListNode {
    int val;
    ListNode next;
    
    ListNode(int val) {
        this.val = val;
    }
}
  1. 创建一个递归函数reverseList,接收一个链表头节点作为参数,并返回反转后的链表头节点。
代码语言:txt
复制
public ListNode reverseList(ListNode head) {
    if (head == null || head.next == null) {
        return head;
    }
    
    ListNode temp = reverseList(head.next);
    head.next.next = head;
    head.next = null;
    
    return temp;
}
  1. 在主函数中创建一个链表,并调用reverseList函数进行链表反转。
代码语言:txt
复制
public static void main(String[] args) {
    ListNode head = new ListNode(1);
    head.next = new ListNode(2);
    head.next.next = new ListNode(3);
    head.next.next.next = new ListNode(4);
    head.next.next.next.next = new ListNode(5);
    
    ListNode reversedHead = reverseList(head);
    
    // 输出反转后的链表
    while (reversedHead != null) {
        System.out.print(reversedHead.val + " ");
        reversedHead = reversedHead.next;
    }
}

以上代码实现了在Java中使用temp变量递归地反转链表。在这个例子中,我们定义了一个链表节点类ListNode,然后使用递归函数reverseList来反转链表。在递归函数中,我们首先判断链表是否为空或只有一个节点,如果是,则直接返回该节点。否则,我们递归调用reverseList函数来反转链表的子链表,并将子链表的尾节点的下一个节点指向当前节点,然后将当前节点的下一个节点设为null,最后返回反转后的链表头节点。

这种方法的时间复杂度为O(n),其中n是链表的长度。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券