请问单链表反转中,新链表reverseHead每个节点是怎么链接起来的?

/**单链表的反转----从头到尾遍历原来的链表,每遍历一个节点就将其取出,并放在新的链表的最前端
 先定义一个节点reverseHead = new HeroNode();
 原来的链表的head.next = reverseHead.next
*/
public static void reversal(HeroNode head) {
    //如果当前链表为空,或者只有一个节点,无需反转,直接返回
    if(head.next == null || head.next.next == null) {
        return;
    }
    //定义一个辅助变量,帮助我们遍历原来的链表
    HeroNode cur = head.next;
    HeroNode next = null; //指向当前节点[cur]的下一个节点
    HeroNode reverseHead = new HeroNode(0, "", "");
    //遍历原来的链表,每遍历一个节点就将其取出并放在新链表 reverseHead 的最前端
    while(cur != null) {
        next = cur.next; //暂时保存当前节点的下一个节点
        cur.next = reverseHead.next; //将cur的下一个节点指向新链表的最前端
        reverseHead.next = cur; //将cur指向新的链表上
        cur = next; //让cur后移
    }
    head.next = reverseHead.next;
}

}

你可以看下我博客中的单链表操作,还有一些复杂操作,不过是c语言写的,你可以借鉴思路。