摘要: class Solution { public List<Integer> inorderTraversal(TreeNode root) { /** * 方法1: 递归 * 时间复杂度:O(n) 空间复杂度:O(n) */ /* List<Integer> res = new ArrayList< 阅读全文
posted @ 2020-12-18 21:47 不学无墅_NKer 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 思路1:递归。 思路2:非递归。使用栈模拟递归。 class Solution { public List<Integer> preorderTraversal(TreeNode root) { /** *方法1:递归 * 时间复杂度O(n) * 空间复杂度O(n)为递归中栈的开销,平均情况为 O( 阅读全文
posted @ 2020-12-18 20:48 不学无墅_NKer 阅读(77) 评论(0) 推荐(0) 编辑
摘要: ☆☆思路:使用字符串的split方法,以'/'为分隔符区分字符,然后逐步识别符号'..'与字母,'.'可以直接忽略,还需要注意空的情况。 class Solution { public String simplifyPath(String path) { // 需要注意连着的// 分出来是空 Str 阅读全文
posted @ 2020-12-18 18:10 不学无墅_NKer 阅读(59) 评论(0) 推荐(0) 编辑
摘要: class Solution { public int evalRPN(String[] tokens) { // 遇到数字则入栈;遇到算符则取出栈顶两个数字进行计算,并将结果压入栈中。 Stack<Integer> stack = new Stack<>(); int num; for (Stri 阅读全文
posted @ 2020-12-18 15:58 不学无墅_NKer 阅读(43) 评论(0) 推荐(0) 编辑
摘要: class Solution { public boolean isValid(String s) { if (s == null || s.length() == 0) return true; /** * 解法1: */ /*Stack<Character> stack = new Stack< 阅读全文
posted @ 2020-12-18 15:38 不学无墅_NKer 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 链表的归并操作不需要额外空间,因而使用归并排序符合本题常数级空间复杂度的要求。最适合单链表的排序算法是归并排序。 ☆☆☆思路1:自顶向下的归并排序(递归) 时间复杂度O(nlogn), 空间复杂度O(logn),其中空间复杂度主要取决于递归调用的栈空间。 主要考察:1)归并排序思想;2)寻找链表中间 阅读全文
posted @ 2020-12-18 11:03 不学无墅_NKer 阅读(130) 评论(0) 推荐(0) 编辑