题解 | #反转链表#
反转链表
http://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca
记住这个方法把,需要3个指针。
function ReverseList(pHead) { // 要3个指针 // 第一个指向为当前待反转的结点 var first = pHead; // 第二个指向为已完成反转链表的最后一个节点,初始为null; var second = null; //第三个指向待反转的结点的第二个,起保存作用; var third = null; // 循环,结束条件是当前待反转的结点first为空; while(first!=null){ // 第一次,先保存待反转的结点的第二个 third = first.next; // 修改当前待反转节点first指向已完成反转链表的最后一个节点second first.next = second; // 那么,已完成反转链表的最后一个节点将改变 second = first; // 同时,当前待反转的结点也将改变 first = third; } // 输出已完成反转链表的最后一个节点second,它将成为表头; return second; }