鏈表逆序-遞歸法

package com.example.lib;

import javax.xml.soap.Node;

//鏈表逆序 遞歸法
public class LianBIao2 {

    public static void main(String[] args) {



        LNode headNode=new LNode();
        LNode preNode=headNode;
        for(int i=1;i<=7;i++){
            LNode node=new LNode();
            node.data=i;
            preNode.next=node;
            preNode=node;
        }

        LianBiao1.printNode(headNode);
        LianBiao1.printNode(recursionNode(headNode));
    }
    o(n)   
    public static LNode recursionNode(LNode head){
        //先逆序除第一個結點外到子鏈表
        //再把結點添加到子鏈表後面
       if(head==null||head.next==null){
           return head;
       }
        //反轉後面到結點
        LNode newNode=recursionNode(head.next);//7
        //把當前遍歷到結點加到後面結點逆序後鏈表到尾部
        head.next.next=head;
        head.next=null; 
        return  newNode;

    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章