10 2022 档案

摘要:二叉树 110. 平衡二叉树 参考:代码随想录 思路 二叉树的深度:从根节点出发到该节点的最长简单路径边的条数。 二叉树的高度:从该节点出发到叶子节点的最长简单路径的条数。 题目要求判断是否是高度平衡的二叉树, 那么就是二叉树高度的问题,既然是求高度问题使用后序遍历。 递归 递归函数的参数和返回值: 阅读全文
posted @ 2022-10-12 23:44 neil_liu 阅读(36) 评论(0) 推荐(0)
摘要:二叉树的深度与高度 二叉树的深度:从根节点到该节点的最长简单路径边的条数或节点数(取决于深度是否从1开始) 二叉树的高度:从该节点到叶子节点的最长简单路径边的条数或节点数(取决于高度是否从1开始) 104.二叉树的最大深度 参考:代码随想录 思考 根据二叉树深度和高度的定义可知根节点的高度就是二叉树 阅读全文
posted @ 2022-10-12 00:55 neil_liu 阅读(31) 评论(0) 推荐(0)
摘要:二叉树 226. 翻转二叉树 参考:代码随想录 思路 翻转二叉树的方式: 递归 迭代法 层序遍历 1.递归 前序遍历 /** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNod 阅读全文
posted @ 2022-10-11 01:23 neil_liu 阅读(34) 评论(0) 推荐(0)
摘要:二叉树的遍历 144. 二叉树的前序遍历 参考:代码随想录-二叉树的递归遍历 参考:代码随想录-二叉树的迭代遍历 参考:代码随想录-二叉树的迭代遍历统一写法 思路-递归法 二叉树的前序遍历是中左右的顺序,最常用的遍历方式是递归法。 总结递归法分三个步骤: 确定递归函数的参数与返回值:本题递归参数是当 阅读全文
posted @ 2022-10-10 23:11 neil_liu 阅读(30) 评论(0) 推荐(0)
摘要:栈与队列 150. 逆波兰表达式求值 参考:代码随想录 思路 根据提示,逆波兰表达式是一种后缀表达式,所谓后缀就是指算符写在后面。那么可以使用栈来处理逆波兰表达式的计算。 当当前的字符是符号时,依次取出栈顶的2个元素。并根据符号进行运算,将计算后的结果插入回栈顶,继续向下运算。 func evalR 阅读全文
posted @ 2022-10-10 00:35 neil_liu 阅读(28) 评论(0) 推荐(0)
摘要:栈与队列 232.用栈实现队列 参考:代码随想录 思路 一道模拟题,不涉及到算法部分。如果想用栈来实现队列,至少需要2个栈,一个输入栈一个输出栈。 在进行push操作时,将数据放入到输入栈中。 在进行pop操作时,将数据从输出栈中取出,如果输出栈为空时,则将输入栈的数据全部放入输出栈。 如果输入栈和 阅读全文
posted @ 2022-10-09 01:10 neil_liu 阅读(23) 评论(0) 推荐(0)
摘要:字符串 459. 重复的子字符串 参考:代码随想录 思考 判断一个字符串s是否包含子串,可以将2个s首尾相连,组合成t=s+s(剔除首尾字符),如果字符串s存在字串,那么t一定存在字符串s。 例如,一个字符串由abab组成,那么组合后是abababab,去掉首尾之后bababa,那么字符串中依然存在 阅读全文
posted @ 2022-10-07 23:24 neil_liu 阅读(22) 评论(0) 推荐(0)
摘要:字符串(KMP算法) 28. 找出字符串中第一个匹配项的下标 参考:代码随想录 思考 一道简单的字符串单模匹配的题目。 使用暴力匹配,时间复杂度O(m*n)。 func strStr(haystack string, needle string) int { m, n := len(haystack 阅读全文
posted @ 2022-10-04 22:44 neil_liu 阅读(19) 评论(0) 推荐(0)