code: static <K,V> TreeMapEntry<K,V> predecessor(TreeMapEntry<K,V> t) {
          if (t == null)
              return null;
          else if (t.left != null) {
              TreeMapEntry<K,V> p = t.left;
              while (p.right != null)
                  p = p.right;
              return p;
          } else {
              TreeMapEntry<K,V> p = t.parent;
              TreeMapEntry<K,V> ch = t;
              while (p != null && ch == p.left) {
                  ch = p;
                  p = p.parent;
              }
              return p;
          }
      }
docs: Returns the predecessor of the specified Entry, or null if no such.