If your theme uses wp_nav_menu() to output the nav menu, then you can use the ‘wp_nav_menu’ filter to alter the menu HTML. Your callback is passed the actual HTML for the menu and an object of menu arguments.
If your site has more than one nav menu, check the arguments object to ensure you are modifying the correct menu. Also examine the current menu HTML to see how the current items are organized so you can replicate the same structure, otherwise your added element will not be styled like the rest of the menu.
You can use str_replace() to insert your item by replacing the final </ul> with your item’s HTML (including <li>, </li> and any classes) with a new </ul> concatenated to the end.