code: public List<Intervalable> findOverlaps(Intervalable interval)
      {
  
          List<Intervalable> overlaps = new ArrayList<Intervalable>();
  
          if (this.point < interval.getStart())
          {
              // 右边找找
              addToOverlaps(interval, overlaps, findOverlappingRanges(this.right, interval));
              addToOverlaps(interval, overlaps, checkForOverlapsToTheRight(interval));
          }
          else if (this.point > interval.getEnd())
          {
              // 左边找找
              addToOverlaps(interval, overlaps, findOverlappingRanges(this.left, interval));
              addToOverlaps(interval, overlaps, checkForOverlapsToTheLeft(interval));
          }
          else
          {
              // 否则在当前区间
              addToOverlaps(interval, overlaps, this.intervals);
              addToOverlaps(interval, overlaps, findOverlappingRanges(this.left, interval));
              addToOverlaps(interval, overlaps, findOverlappingRanges(this.right, interval));
          }
  
          return overlaps;
      }
docs: 寻找与interval有重叠的区间
  @param interval
  @return