- 博客(10)
- 收藏
- 关注
原创 将二叉树拆成链表
题目描述:将一棵二叉树按照前序遍历拆解成为一个假链表。所谓的假链表是说,用二叉树的right 指针,来表示链表中的 next 指针。 注意事项不要忘记将左儿子标记为 null,否则你可能会得到空间溢出或是时间溢出。样例 1 \ 1 2 /
2017-04-21 21:20:57
217
原创 翻转二叉树
问题描述:翻转一棵二叉树样例 1 1 / \ / \2 3 => 3 2 / \ 4 4解题思路:判断根节点是否为空,若根节点是否为空,则返回为空;将左子树赋给node,然后分别遍历左子树和右子树,遍历右子树将值赋给左子树,再将左子树赋给右子树,返回这棵树,
2017-04-21 20:54:28
166
原创 克隆二叉树
题目描述:深度复制一个二叉树。给定一个二叉树,返回一个他的 克隆品 。样例给定一个二叉树: 1 / \ 2 3 / \4 5返回其相同结构相同数值的克隆二叉树: 1 / \ 2 3 / \4 5解题思路:先判断根节点是否为空,若根节点为空,则返回空;
2017-04-21 20:53:02
182
原创 二叉树的后序遍历
题目描述:给出一棵二叉树,返回其节点值的后序遍历。样例给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3返回 [3,2,1]解题思路:和前序遍历的思路一样,创建一个指针向量,判断根节点是否为空,若根节点为空,则返回指针向量;构造一个函数A,按照后序遍历的顺序,先访问左子树,再访问右子树,最后访问根节点
2017-04-16 22:02:11
259
原创 二叉树的中序遍历
题目描述:给出一棵二叉树,返回其中序遍历样例给出二叉树 {1,#,2,3}, 1 \ 2 / 3返回 [1,3,2].解题思路:先创建一个指针向量,和前序遍历的思路一样,判断根节点是否为空,若为空,返回该指针向量;若不为空,创建一个函数A,在函数A中,判断根节点是否为空,若根节点为空,返回空;若根节点不为空
2017-04-16 21:27:42
601
原创 二叉树的前序遍历
问题描述:给出一棵二叉树,返回其节点值的前序遍历。样例给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3 返回 [1,2,3].解题思路:创建一个向量指针p,如果根节点为空,则返回p;构造一个函数A,在函数A中,判断根节点是否为空,若根节点不为空,则先访问根节点,再访问左子树,最后访问右子树。代码实
2017-04-16 20:53:05
190
原创 等价二叉树
题目描述:检查两棵二叉树是否等价。等价的意思是说,首先两棵二叉树必须拥有相同的结构,并且每个对应位置上的节点上的数都相等。样例 1 1 / \ / \ 2 2 and 2 2 / /4 4就是两棵等价的二叉树。 1
2017-04-16 20:48:40
178
原创 二叉树的最小深度
题目描述:给定一个二叉树,找出其最小深度。二叉树的最小深度为根节点到最近叶子节点的距离。样例给出一棵如下的二叉树: 1 / \ 2 3 / \ 4 5 这个二叉树的最小深度为 2解题思路:和求解二叉树的最大深度
2017-04-09 10:23:23
347
原创 二叉树的最大深度
题目描述:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的距离。样例给出一棵如下的二叉树: 1 / \ 2 3 / \ 4 5这个二叉树的最大深度为3.解题思路:先判断根节点是否为空,根节点为空,返回二叉树的最大深度为0;根节点不为空,比较左子树和右子树的最大深度,返回深度大的子树,再加上1代码实
2017-04-09 10:09:52
251
原创 删除链表中的元素
题目:给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5。思路:判断链表中的元素是否和给定的val=3相同,若相同,就删除该节点代码:ListNode dummy = new ListNode(0); dummy.next = head; head = dumm
2017-03-27 23:07:52
260
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人