码迷,mamicode.com
首页 > 其他好文 > 详细

反转链表

时间:2015-05-17 16:47:04      阅读:109      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!