Concept Flow - Delete from End of Doubly Linked List
Start at tail node
Check if list is empty?
| No
If only one node
| Yes
Set head and tail to None
No
Move tail pointer to previous node
Set new tail's next to None
Delete old tail node
Done
Start from the tail node, check if list is empty or has one node, then update tail pointer and remove last node.