摘要: 本组囊括二叉树中匹配类问题。 对于二叉树的题目,无非就以下几种解题思路: 先序遍历(深度优先搜索); 中序遍历(深度优先搜索)(尤其二叉搜索树); 后序遍历(深度优先搜索); 层序遍历(广度优先搜索)(尤其按照层来解决问题的时候); 序列化与反序列化(结构唯一性问题),如剑指offer 37; 匹配 阅读全文
posted @ 2020-11-13 17:05 Jesse-jia 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 本组囊括二叉树中由求路径总和的相关题目,最后做一个小小扩展。 129. Sum Root to Leaf Numbers 题目描述:中等 解法一:dfs 每层需要乘上10,递归实现,考虑dfs;用一个sum来保存当前路径的和,用ans来保存当前所有路径的总和每到一个子节点,sum = 子节点的值+s 阅读全文
posted @ 2020-11-10 10:37 Jesse-jia 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 本组囊括二叉树中由前中后序中某两序来重新构造树的题目,难度均为中等。三题采取统一模板。 105. Construct Binary Tree from Preorder and Inorder Traversal 题目描述:中等 解法一:递归 递归的dfs想法很直接,就是通过相对位置来递归地构造左右 阅读全文
posted @ 2020-11-10 10:36 Jesse-jia 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 本组囊括二叉树各序遍历的题目,难度不等。 144. Binary Tree Preorder Traversal 题目描述:中等 解法一:递归 递归的dfs很简单,特别是用于前中后序三种遍历,只要该节点做好自己的事,就开启下一个顺序的节点的递归。 1 class Solution: 2 def pr 阅读全文
posted @ 2020-11-10 10:34 Jesse-jia 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 本组囊括二叉树相关题目,难度不等。 思路一: DFS。相对于最大深度来说,最小深度需要多考虑一点:即到达节点的其中一个儿子为空另一个非空,需要返回非空儿子的高度+1,作为本节点高度而非返回较小值。这一点解决后就是常规的递归操作了。 1 class Solution(object): 2 def mi 阅读全文
posted @ 2020-11-10 10:31 Jesse-jia 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 本组囊括链表相关题目,难度不等。 61. Rotate List 题目描述:中等 解法一: 官方题解:使用成环的思想,原链表连成环,再断开环和生成新链头和链尾即可;首先将原链表的链头和链尾连接起来形成环,然后再n-k的节点后断开环,下一个节点n-k+1即是新的链表的链头,n-k是新链表的链尾。 上述 阅读全文
posted @ 2020-11-10 10:28 Jesse-jia 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 本组囊括链表相关题目,难度不等。 24. Swap Nodes in Pairs 题目描述:中等 解法一: 考虑迭代解法,如果要两两交换相邻的节点,则这些节点肯定是相邻的奇偶节点,使用两个指针来遍历所有的奇偶节点。交换后将新节点的头指向第二个的头即可;除了一个哨兵外,还需要定义一个指针current 阅读全文
posted @ 2020-11-10 10:26 Jesse-jia 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 本组囊括链表相关题目,难度不等。 2. Add Two Numbers 题目描述:中等 思路一: 主要难点是进位的问题,使用取模和整除来求解,具体看代码中的注释: 1 # Definition for singly-linked list. 2 # class ListNode: 3 # def _ 阅读全文
posted @ 2020-11-10 10:24 Jesse-jia 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 本组囊括字符串相关题目,难度均为简单。 58. Length of Last Word 题目描述:简单 解法一: python中的split能很好地解决这个问题:使用split删除空格后逆着遍历即可得到第一个非空字符的长度: 1 class Solution: 2 def lengthOfLastW 阅读全文
posted @ 2020-11-10 10:22 Jesse-jia 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 本组囊括字符串相关题目,难度均为简单。 20. Valid Parentheses 注:此题也归为栈类。 题目描述:简单 使用栈这一数据结构完成本任务,把开括号按顺序放入栈顶,每遇到一个闭括号,就弹出栈顶元素,看是否和此闭括号匹配。遍历完字符串后若栈为空,则说明都匹配,返回true,反之则返回fal 阅读全文
posted @ 2020-11-10 10:20 Jesse-jia 阅读(87) 评论(0) 推荐(0) 编辑