起航学习网

- 让每个人都能学到最前沿新知识、新技能!
起航学习网
当前位置: 起航学习网 > 短期培训 > 编程语言 > Java单链表反转详解

Java单链表反转详解

时间:2022-06-08 14:17:18来源:IT培训网 作者:Java学习网 已有: 名学员访问该课程

  快捷搜索:java单链表反转

前言: 链表是一种物理存储单元,是不连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中指针的顺序来实现的。

链表是一种物理存储单元,是不连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中指针的顺序来实现的。链表由一系列节点组成(链表中的每个元素称为一个节点)形式,节点可以在运行时动态生成。每个节点有两部分:一个是存储数据元素的数据域,另一个是存储下一个节点地址的指针域。与线性表序结构相比,操作复杂。

v定义链表

/ ** 
 * @作者头头 https://www.cnblogs.com/toutou/
 * @date 到 2020/11
 * @从
 * / 
public  class ListNode {
     public  int value;
    下一个公共ListNode;
    public ListNode( int data){
         this .value = data;
    }
}

v递归实现

/ ** 
 * @作者头头 https://www.cnblogs.com/toutou/
 * @date 到 2020/11
 * @从
 */ 
public  class ReverseHelper {
     public  static ListNode reverse(ListNode curr){
         if (curr == null || curr.next == null ){
             return curr;
        }
        ListNode temp = curr.next;
        ListNode newNode = reverse (curr.next);
        temp.next =当前;
        curr.next = null ;
        返回新节点;
    }
}

v非递归实现

/ ** 
 * @作者头头 https://www.cnblogs.com/toutou/
 * @date 到 2020/11
 * @从
 * / 
public  class ReverseHelper {
     public  static ListNode whileReverse (ListNode curr) {
        ListNode pre = null ;
        ListNode 下一个= null ;
        而(当前!= null ){
            下一个= curr.next;
            curr.next = pre;
            前=当前;
            当前=下一个;
        }
        返回前;
    }
}

v测试结果

/ ** 
 * @作者头头 https://www.cnblogs.com/toutou/
 * @date 到 2020/11
 * @从
 */ 
public  class App {
     public  static  void main(String[] args) {
        ListNode head = new ListNode (0 );
        列表节点 tmp = null ;
        ListNode cur = null ;
        for ( int i = 1; i < 10; i++ ) {
            tmp = new ListNode(i);
            如果(1 == i){
                头.next = tmp;
            }其他{
                cur.next = tmp;
            }
            cur = tmp;
        }
        // ListNode node1 =ReverseHelper.whileReverse(head); 
        ListNode node1 = ReverseHelper.reverse(head);
        而(节点1!=空){
            System.out.println(node1.value);节点1 =节点
            1.next ;
        }
        System.out.println( "OK" );
    }
}

 

文章出自:http://qh.itpxw.cn/peixun/software/2022121695.html

文章标题:Java单链表反转详解



免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉

你也许会喜欢如下的文章?
(责任编辑:深圳学历教育网)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
培训学校
IT培训网 访问该机构站点 报名留言 加为好友 用户等级:注册会员 用户级别:10 机构名称:IT培训网 联 系 人:罗老师 联系电话:13783581536 联系手机:13783581536 在线客服:起航学习网客服 在 线 QQ:起航学习网客服 电子邮件: 网站域名:http://www.itpxw.cn 注册时间:2016-07-18 11:07 最后登录:2024-02-20 13:02
推荐内容