#Java, <s>127</s> <s>111</s> 88 bytes

    (s,r)->{for(int i=0;i++<s.length();)r+=i%2<1?new StringBuffer(s).reverse():s;return r;};
 
#Ungolfed test program

    	public static void main(String[] args) {
		BiFunction<String, String, String> func = (s, r) -> {
			for (int i = 0; i++ < s.length();) {
				r += i % 2 < 1 ? new StringBuffer(s).reverse() : s;
			}
			return r;
		};
		System.out.println(func.apply("Hello!", ""));
	}