My code can be viewed in my github: Proverbs Github.
The following difficulty is defined by myself.

backspace-string-compare(easy)

Stack.

binary-tree-right-side-view(medium)

DFS. First, compute the depth of all subtrees. Second, for each subtree, decide which layers of its left subtree and its right subtree should be displayed.

clone-graph(easy)

It will be easy if we can use map to check if we have visited a node.

convert-binary-search-tree-to-sorted-doubly-linked-list(medium)

Convert the tree to doubly linked list recursively.

find-duplicate-file-in-system(easy)

Map.

find-the-closest-palindrome(hard)

First, find the first larger palindromic number. Then, find the first less palindromic number. Finally, select the closer number.

first-unique-character-in-a-string(easy)

Save how many times and where a letter occurs.

jump-game-ii(medium)

The straightforward way is to convert it to a graph by connecting node i to the following nums[i] nodes and convert it to a shortest path problem.
However, its time complexity is high.
According to the idea of modify the distances, we can find the distances never decrease from left to right. That means we do not to modify the distance of the node we have modified and the time complexity will be O(1).

lfu-cache(hard)

It is a typical problem.
O(1) get -> hashtable, O(1) modification(+1/-1) to maintain order -> linked list.
I am not familiar with stl::list, so it takes me a lot of time to debug because of the operation erase which may free the memory of the erased element.

minimize-malware-spread(medium)

Find the largest group with only one infected node.

most-common-word(easy)

nested-list-weight-sum-ii(easy)

DFS. However, the description is problematic because it does not tell what if the depth of the left child is different from that of the right child.

remove-linked-list-elements(easy)

Remove element from linked list recursively.