java反转链表

public class JavaTest1 {

public static void main(String[] args) {

Node head =new Node(0);

        Node node1 =new Node(1);

        Node node2 =new Node(2);

        Node node3 =new Node(3);

        head.setNext(node1);

        node1.setNext(node2);

        node2.setNext(node3);

        // 打印反转前的链表

        Node h = head;

        while (null != h) {

System.out.print(h.getData() +" ");

            h = h.getNext();

        }

// 调用反转方法

        head =Reverse1(head);

        System.out.println("\n**************************");

        // 打印反转后的结果

        while (null != head) {

System.out.print(head.getData() +" ");

            head = head.getNext();

        }

}

/**

    * 递归,在反转当前节点之前先反转后续节点

    */

    public static NodeReverse1(Node head) {

// head看作是前一结点,head.getNext()是当前结点,reHead是反转后新链表的头结点

        if (head ==null || head.getNext() ==null) {

return head;// 若为空链或者当前结点在尾结点,则直接还回

        }

Node reHead =Reverse1(head.getNext());// 先反转后续节点head.getNext()

        head.getNext().setNext(head);// 将当前结点的指针域指向前一结点

        head.setNext(null);// 前一结点的指针域令为null;

        return reHead;// 反转后新链表的头结点

    }

}

class Node {

private int Data;// 数据域

    private NodeNext;// 指针域

    public Node(int Data) {

// super();

        this.Data = Data;

    }

public int getData() {

return Data;

    }

public void setData(int Data) {

this.Data = Data;

    }

public NodegetNext() {

return Next;

    }

public void setNext(Node Next) {

this.Next = Next;

    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 目录 1. 栈和队列1.用两个队列实现栈2.用两个栈实现队列3.实现一个栈,可以用常数级时间找出栈中的最小值4.判...
    MigrationUK阅读 8,158评论 4 20
  • 一、基本数据类型 注释 单行注释:// 区域注释:/* */ 文档注释:/** */ 数值 对于byte类型而言...
    龙猫小爷阅读 9,724评论 0 16
  • //leetcode中还有花样链表题,这里几个例子,冰山一角 求单链表中结点的个数----时间复杂度O(n)这是最...
    暗黑破坏球嘿哈阅读 5,422评论 0 6
  • 辗转难眠,明知道自己不应该再被欲望所支配。最近又被脑子里的情感给左右,我多希望自己做一个禁欲主义。扫清一切障碍,只...
    电影院里的手阅读 3,459评论 0 0
  • 今天是正式进入特种兵学习的第二天,回头看看感觉好像已经很多天了一样,紧张的学习生活,感觉自己每天都是神经紧绷的状态...
    田妞GO阅读 1,696评论 0 0