说明看注释
一、untreeify
final Node<K, V> untreeify(HashMap<K, V> map) {
//hd 链表头节点
//tl 链表尾节点
Node<K, V> hd = null, tl = null;
//q为当前使用方法的TreeNode,在q节点从Node转为TreeNode之前的链表关系还在,遍历链表
for (Node<K, V> q = this; q != null; q = q.next) {
//将q节点从TreeNode转为Node p
Node<K, V> p = map.replacementNode(q, null);
//如果tl节点为空,将hd节点指向p节点
if (tl == null) {
hd = p;
} else {
//如果tl节点不为空,则将tl的后节点指向p