随笔分类 - 二叉树
摘要:题目 树的序列化, /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), lef
阅读全文
摘要:"题目"
阅读全文
摘要:"题目" 题意:在一颗普通的二叉树里找到两个节点的最近公共祖先。 题解:递归,如果当前节点等于p或者q,那返回当前节点了。 然后递归左子树,和右子树。 如果左子树和右子树返回的都不是NULL,说明当前节点是公共祖先。 否则返回两个子树有值的那一个。
阅读全文
摘要:"题目" 翻转二叉树
阅读全文
摘要:"题目" 题意:假如你在一棵二叉树的右边,往左看,能看到哪些元素。 题解:广搜,每一层的最右边元素即可。
阅读全文
摘要:"题目" 题意:给你一个BST,其中任意两个元素被交换过了,让你把交换的元素复原。 题解:BST的中序遍历是个有序的数组,那么两个元素被交换了,我们可以for循环一次找出这两个数字。从小到大遍历,维护一个值max,表示当前遍历元素的最大值。由于两个元素被交换了,所以max一定有一段时间是不变的,直到
阅读全文
摘要:"题目" 题意:判断一个二叉树是否为 二叉搜索树BST 题解:所有思路都是去找二叉树中不满足BST性质的节点,找到了,就不符合,找不到就符合。那么怎么去找呢?我提供两种思想。 第一个是,BST的中序遍历是一个有序数组,所以把BST 中序遍历的结果拿出来,看看是不是有序的就可以了。很简单。那如果不让你
阅读全文