算法和数据结构就是编程的一个重要部分,你若失掉了算法和数据结构,你就把一切都失掉了。尤其对于我等应届毕业生来说,能出得了手的也只有这些了。
对于校园招聘来说,互联网公司还是喜欢拿单链表的反转考验我们应届生的。话不多说,代码如下:
package dataStructtion.linear;
/**
* 单链表的反转
* @author xiucai
*
*/
public class SingleLinkedList_Reverse {
public static <T> void reverse(SingleLinkedList<T> list){
Node<T> p=list.head.next;
Node<T> pre=null;//指向前驱
Node<T> post=null;//指向后继
while(p!=null){
post=p.next;
p.next=pre;
pre=p;
p=post;
}
list.head.next=pre;
}
public static void main(String[] args) {
SingleLinkedList<String> list=new SingleLinkedList<String>();
list.append("a");
list.append("b");
list.append("c");
list.append("d");
System.out.println(list);
reverse(list);
System.out.println(list);
}
}