
二叉树
欢偷偷
这个作者很懒,什么都没留下…
展开
-
剑指offer——打印二叉树 c++版和java版
题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印。思路:队列实现,先进跟节点,然后出一个跟,就把左右孩子放进队列,直到队为空。这道题思路清晰之后很好写买就是考察一下对队列的熟悉程度。1.c++版本#include<deque>/*struct TreeNode { int val; struct TreeNode *left; struct Tre...原创 2018-05-08 21:47:40 · 123 阅读 · 0 评论 -
剑指offer———二叉树中和为某一值的路径 c++和java版本实现
题目:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。思路:有可能存在好几条路径都符合条件,如果找到叶子节点的同时,路径和也为给定值,那么添加这条路径,否则,弹出最后一个元素,重新添加右节点,继续判断。1.c++版本/*struct TreeNode { int val; struct TreeNod...原创 2018-05-09 10:26:24 · 179 阅读 · 0 评论 -
二叉树的高度、深度
曾经跪倒在京东c++实习生一面的路上,面试官说二叉树的高度,我竟然想用一个公式计算出来,莫非那个时刻的我是疯了不成,毕竟是人生第一次面试,脑回路清奇也不是不能有,但是也不能那么清奇啊,莫非是个傻子不成,好了,废话不多说,撸吧!以下代码都是牛客网通过的代码。1.递归版本(不得不说,递归真的是无比有用)/*struct TreeNode { int val; struct TreeNode *l...原创 2018-04-21 21:10:57 · 5728 阅读 · 0 评论 -
剑指offer二叉树的重建——c++和java对比实现
题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。思路:前序遍历第一个节点就是根节点,根节点在中序遍历中将数分为两组,左边是左子树,右边是右子树,分别将左子树和右子树分别进行寻找根节点,递归实现。1.java...原创 2018-05-07 08:53:48 · 177 阅读 · 0 评论 -
685. Redundant Connection II
目前为止。leetcode中的tree题里面最绕的一个题了,和图产生关系的都感觉不简单。In this problem, a rooted tree is a directed graph such that, there is exactly one node (the root) for which all other nodes are descendants of this node, p...原创 2018-07-08 16:08:50 · 222 阅读 · 0 评论 -
二叉树的层序遍历leetcode102/107
102. Binary Tree Level Order TraversalGiven a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).For example:Given binary tree [3,9,20,null,nu...原创 2018-07-01 22:02:40 · 484 阅读 · 0 评论 -
剑指offer——62/66二叉搜索树的第k个结点
给定一颗二叉搜索树,请找出其中的第k小的结点。例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。思路:中序遍历/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : ...原创 2018-07-12 20:38:00 · 131 阅读 · 0 评论