美文网首页
P2-链表反转-递归

P2-链表反转-递归

作者: YonchanLew | 来源:发表于2021-05-04 15:24 被阅读0次
//反转链表
public class ReverseList {
 
    static class ListNode{
        int val;
        ListNode next;
 
        public ListNode(int val, ListNode next){
            this.val = val;
            this.next = next;
        }
 
        public static ListNode recursion(ListNode head){
 
            if(head == null || head.next == null) {
                return head;
            }
 
            ListNode new_head = recursion(head.next);
 
            head.next.next = head;
            head.next = null;
 
            return new_head;
        }
 
        public void printList(){
            System.out.println(this.val);
            ListNode curr = this;
            while(curr.next != null) {
                System.out.println(curr.next.val);
                curr = curr.next;
            }
        }
    }
 
    public static void main(String[] args) {
        ListNode node5 = new ListNode(5, null);
        ListNode node4 = new ListNode(4, node5);
        ListNode node3 = new ListNode(3, node4);
        ListNode node2 = new ListNode(2, node3);
        ListNode node1 = new ListNode(1, node2);
        node1.printList();
        ListNode.recursion(node1);
        node5.printList();
 
    }
 
}

相关文章

  • P2-链表反转-递归

  • Algorithm小白入门 -- 单链表

    单链表递归反转链表k个一组反转链表回文链表 1. 递归反转链表 单链表节点的结构如下: 1.1 递归反转整个单链表...

  • 链表反转

    循环反转链表 递归反转链表

  • 单链表反转

    单链表 单链表反转 递归方法

  • 反转链表(java实现)

    链表反转 节点数据结构如下: 链表反转的两种方式:递归和非递归 递归方式如下: 非递归方式如下:

  • leecode刷题(22)-- 反转链表

    leecode刷题(22)-- 反转链表 反转数组 反转一个单链表。 示例: 进阶:你可以迭代或递归地反转链表。你...

  • 数据结构专题:1.单向链表反转与排序

    有如下单向链表 1.单向链表反转,递归 递归的方式其实是从尾节点开始进行指针反转,最终递归反转到头节点 2.单向链...

  • 初级算法-链表-反转链表

    给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 进阶:链表可以选用迭代或递归方式完成反转。你能...

  • 链表相关的题

    单向链表反转 如1->2->3->4,反转成4->3->2->1反转链表有2种做法,递归和循环。递归写法: 循环写...

  • 链表反转

    反转类型问题是面试中的常见问题。如反转字符串,反转链表等,今天给出利用递归和非递归方法解决反转链表问题的两个解决思...

网友评论

      本文标题:P2-链表反转-递归

      本文链接:https://www.haomeiwen.com/subject/vricdltx.html