Algorithm:链表、堆栈、队列相关的算法
一、链表
1.1、链表相加
如:输入:2->4->3、5->6->4,输出:7->0->8
1.2、链表相加
输入:2→4→3、5→6→4,输出:7→0→8
2.1、链表的部分翻转
如:给定1->2->3->4->5,m=2,n=4,返回1->4->3->2->5。
2.2、链表部分翻转
给定1->2->3->4->5,m=2,n=4,反转后,返回1->4->3->2->5
3.1、链表划分
如:给定链表1->4->3->2->5->2和x = 3,返回1->2->2->4->3->5。
3.2、链表划分
如:给定链表1→4→3→2→5→2和x = 3,返回1→2→2→4→3→5。
4.1、排序链表中去重
4.2、链表中去重:给定:2→3→3→5→7→8→8→8→9→9→10,返回:2→3→5→7→8→9→10
5、链表重复元素全部删除
若题目变成:若发现重复元素,则重复元素全部删除,代码应该怎么实现呢
给定:2→3→3→5→7→8→8→8→9→9→10,返回:2→5→7→10
二、堆栈
1、单链公共结点问题
2、一般LCA
3.1、括号匹配
3.2、括号匹配:给定字符串,仅由"()[]{}"六个字符组成。设计算法,判断该字符串是否有效。
4、最长括号匹配
5.1、最长括号匹配
5.2、用deep值替换了stack栈,空间复杂度由O(N)降到O(1)。
6.1、逆波兰表达式Reverse Polish Notation
6.2、RPN
7、直方图矩形面积
8、收集雨水问题
三、队列
1、最短路径条数问题
2、拓扑排序