The methods mentioned by @Michael Stimson work very well. I tried both ArcGIS and QGIS. The "feature to polygon" in ArcGIS and "Polygon self-intersection" in QGIS do the same thing. They "return a new layer with sub-divided polygons (while only one of the duplicated overlapping area is retained)". The only difference is that in ArcGIS, the new vector lost the original attribute (e.g. segment ID) while it is preserved in QGIS. Therefore, QGIS is better at doing this. Detailed methods are described here by Kazuhito.
- SAGA | Vector polygon tools - Polygon self-intersection tool.
This tool returns a new layer with sub-divided polygons (while only
one of the duplicated overlapping area is retained).
- Vector selection - Select by expression tool. Use an expression
to select the sliver polygons (see below example).
- List item Vector geometry - Eliminate selected polygons tool will remove these selected features. (I would suggest the Largest common boundary option... it will give more naturally-looking output.)