#define AUTO -1
#ifndef MIN
-#define MIN(a,b) ((a) < (b) ? (a) : (b))
+#define MIN(a, b) ((a) < (b) ? (a) : (b))
#endif
#ifndef MAX
-#define MAX(a,b) ((a) > (b) ? (a) : (b))
+#define MAX(a, b) ((a) > (b) ? (a) : (b))
#endif
#ifndef ABS
#define ARRAY_SIZE(array) (sizeof(array) / sizeof(array[0]))
+#define PTR_TO_INT(p) ((int) (long) (p))
+#define PTR_TO_UINT(p) ((unsigned int) (unsigned long) (p))
+
+#define INT_TO_PTR(i) ((void *) (long) (i))
+#define UINT_TO_PTR(u) ((void *) (unsigned long) (u))
+
struct ListNode
{