01 2022 档案
摘要:判断t1树是否包含t2树全部的拓扑结构 题目:判断t1树是否包含t2树全部的拓扑结构 《程序员代码面试指南》第42题 P142 难度:士★☆☆☆ 该题难度为士,算简单题,虽然我还想了好一会,敲了好一会,debug了好一会,然后做的还有一点小问题o(╥﹏╥)o(不得不佩服左神和力扣上的一些大神,代码能
阅读全文
摘要:二叉树的按层打印与ZigZag打印 题目:二叉树的按层打印与ZigZag打印 《程序员代码面试指南》第40题 P132 难度:尉★★☆☆ 按层打印原本是非常基础的内容,对二叉树做简单的宽度优先遍历即可。不过本题有额外的要求,即同一层的节点必须打印在同一行上,并且要求输出行号。 本题使用了2个Node
阅读全文
摘要:找到二叉树中符合搜索二叉树条件的最大拓扑结构 题目:找到二叉树中符合搜索二叉树条件的最大拓扑结构 《程序员代码面试指南》第39题 P124 难度:校★★★☆ 本题有两种解法,时间复杂度分别为O(N²)和O(N)。 首先来看方法一,核心思路就是把整个二叉树中每个节点都作为一次头节点,寻找以它为头节点的
阅读全文
摘要:找到二叉树中的最大搜索二叉子树 题目:找到二叉树中的最大搜索二叉子树 《程序员代码面试指南》第38题 P121 难度:尉★★☆☆ 书上原话:“本题涉及二叉树面试题中一个很常见的套路,也是全书的一个重要内容”。可见其重要性。 这个套路的名字叫做树形dp套路。 树形dp套路使用前提:如果题目求解目标是S
阅读全文
摘要:未排序正数数组中累加和为给定值的最长子数组的长度 题目:未排序正数数组中累加和为给定值的最长子数组的长度 《程序员代码面试指南》第124题 P382 难度:尉★★☆☆ 本题很简单,最优解可以做到时间复杂度为O(N),额外空间复杂度为O(1)。 核心在于使用2个位置/指针——left和right来标记
阅读全文
摘要:二叉树的序列化和反序列化 题目:二叉树的序列化 《程序员代码面试指南》第35题 P107 难度:士★☆☆☆ 二叉树的序列化就是二叉树被记录成文件的过程,二叉树的反序列化就是通过文件内容重建原来二叉树的过程。 序列化过程:首先假设序列化的结果字符串为str,初始时str=""。如果遇到null节点,就
阅读全文
摘要:二叉树的最小深度 题目:二叉树的最小深度 《程序员代码面试指南》第33题 P100 难度:原问题 士★☆☆☆ 进阶问题 将★★★★ 本题书上有普通解法和进阶解法。进阶解法用到了遍历二叉树的神级方法——Morris遍历,暂时不看,有空回来补。 下面介绍普通解法。很简单,就是在遍历的过程中去发现所有的叶
阅读全文
摘要:一种怪异的节点删除方式 题目:一种怪异的节点删除方式 《程序员代码面试指南》第28题 P86 难度:士★☆☆☆ 本题不给定头节点,在只给定要删除的节点node的情况下将其删除。 只能采用将后一个节点的值赋给node,然后再将后一个节点删除的方法。 不过该方法有2个问题,一是如果node为最后一个节点
阅读全文