首页 > 其他 > 详细

反转链表

时间:2015-05-17 16:46:00      阅读:134      评论:0      收藏:0      [点我收藏+]

思路:定义四个结点,前结点preNode,当前结点node,下一个结点nextNode,反转结点reverseNode。遍历结点,设置node结点下一个结点为preNode,把当前结点node赋给preNode,把nextNode赋给node

 public static ListNote reverseListNode(ListNote headNode)  {
        if(headNode==null){
            return null;
        }       
        ListNote reverseNode=null;//反转结点
        ListNote node=headNode;//当前结点
        ListNote preNode=null;//前结点
        while(node!=null){
            ListNote nextNode=node.getNext();//下一个结点
            //当下一个结点为空时,说明node到达结尾,将node反转完成,赋给reverseNode
            if(nextNode==null){
                reverseNode=node;
            }
            node.setNext(preNode);//node设置下一节点为preNode,反转
            preNode=node;
            node=nextNode;
        }
        return reverseNode;
    }

定义单向链表ListNote

public class ListNote {

    private  ListNote NextNote;
    private int value;
    public ListNote(){  
    }
    public ListNote(int value){
        this.value=value;
    }  
    public  ListNote getNext(){     
        return NextNote;            
    }
    public void setNext(ListNote next){
        this.NextNote=next; 
    }   
    public int getValue(){
        return value;   
    }
    public void setValue(int value){
        this.value=value;
    }
}

反转链表

原文:http://blog.csdn.net/qq_16687803/article/details/45789527

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!