private static Node merge(Node odd, Node even) {
		// Sentinel Node
		Node list = new Node(0, null);
		Node start = list;
		while (odd != null || even != null) {
			if (odd != null && even != null) {
				if ((int)odd.getData() < (int)even.getData()) {
					list.setNext(odd);
					odd = odd.getNext();
					list = list.getNext();
				} else if ((int)odd.getData() > (int)even.getData()) {
					list.setNext(even);
					even = even.getNext();
					list = list.getNext();
				} else {
					list.setNext(odd);
					odd = odd.getNext();
					list = list.getNext();
					list.setNext(even);
					even = even.getNext();
					list = list.getNext();
				}
			} else if (odd != null) {
				list.setNext(odd);
				odd = odd.getNext();
				list = list.getNext();
			} else if (even != null) {
				list.setNext(even);
				even = even.getNext();
				list = list.getNext();
			}
		}
		return start;
	}