public void reverseLink(){ LinkNode current= new LinkNode(""); LinkNode previous = new LinkNode(""); LinkNode next = new LinkNode(""); if(headLink.link == null){return;} point.link = headLink.link; next.link = point.link.link; while(point.link!=null){ current.link.link = previous.link; previous.link = current.link; current.link = next.link; if(next.link!=null)//不加判断next.link.link当next.link=null时空指针异常 next.link = next.link.link; } headLink.link = previous.link; } 心得:在写程序的时候必须思路清晰 思路不清晰的时候写出来的程序十有八九是有问题的,现在看起来程序还是比较简单的。但我在公司熬了一夜也没有弄好,原因就是思路不够清晰、命名也不够直观。 LinkNode定义: class LinkNode{ LinkNode link; String data; LinkNode(String data){ this.data = data; link = null; } }