java链表 记录

记录一下java链表的错误和改进

(1)在链表末尾添加一个节点。
错误代码

    public static void main(String[] args) {
        ListNode head;
        ListNode listNode = new ListNode(1);
        head = listNode;
        ListNode index = listNode;
        
        while ( listNode != null ){
            index.next = new ListNode( listNode.val );
            System.out.println( listNode.val );
            listNode = listNode.next;
        }
        /*错误原因*/
        /*最后的listNode为null*/
        listNode = new ListNode( 5 );
        /*等价于后面的*/
        listNode = null;
        listNode = new ListNode( 5 );
        /*这样不就相当于又new了一个listNode吗?*/
    }

正确代码

    public ListNode listNode;
    /*用来指向链表的头部,不能轻易破坏*/
    public ListNode head;

    /*初始化链表*/
    public void init( ListNode listNode ){
        head = listNode;
    }
    /*添加链表*/
    public void add(){

    }
    /*遍历链表*/
    public void visit(){

    }

    public static void main(String[] args) {
        ListNode head;
        ListNode listNode = new ListNode(1);

        /*指向其头部的链表*/
        head = listNode;

        /*其下一个结点设为2*/
        listNode.next = new ListNode( 2 );
        
        /*遍历操作*/
        while ( listNode.next != null ){
            //System.out.print( listNode.val );
            listNode = listNode.next;
        }
        //最后一个不为null的节点
        listNode.next = new ListNode( 3 );

        while ( head != null ){
            System.out.println( head.val );
            head = head.next;
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容