# 利用队列进行层次遍历就行class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = Noneclass Solution: def Print(self, pRoot): if not pRo ...
分类:
编程语言 时间:
2020-03-12 11:33:42
阅读次数:
60
删除二叉搜索树中的节点。题意是给一个二叉搜索树和一个节点key,请将key从BST中删除并维持BST的性质。例子, Example: root = [5,3,6,2,4,null,7] key = 3 5 / \ 3 6 / \ \ 2 4 7 Given key to delete is 3. S ...
分类:
其他好文 时间:
2020-03-12 10:15:46
阅读次数:
59
题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 思路一:最简单的方法 递归判断左右子树 public class Solution { boolean isSymmetrical(TreeNode pRoot) { if(pR ...
分类:
其他好文 时间:
2020-03-12 10:11:13
阅读次数:
55
路径总和 class Solution { public: bool hasPathSum(TreeNode* root, int sum) { return dfs(root, sum); } bool dfs(TreeNode *t, int remain) { if(t == NULL) re ...
分类:
编程语言 时间:
2020-03-10 14:17:32
阅读次数:
67
class Solution { public: bool isSameTree(TreeNode* p, TreeNode* q) { return dfs(p, q); } bool dfs(TreeNode *pt, TreeNode *qt) { if(pt == NULL && qt == ...
分类:
编程语言 时间:
2020-03-09 13:44:52
阅读次数:
64
求n个骰子所有点数出现的概率 思路: n个骰子的点数最大值是6n,最小值是n。用两个数组保存点数。第一个数组的第n位是和为n出现的次数。那么下一次循环的第n位的次数是上一次n 1,n 2,n 3,n 4,n 5,n 6次数之和。 代码: 判断是否AVL树 思路: 1.根据前面的函数,对每个节点判断. ...
分类:
其他好文 时间:
2020-03-07 00:03:10
阅读次数:
69
题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 解题思路 递归思想,如果根节点相同则递归调用match(),如果根节点不相同,则判断 的左子树或右子树与 是否相同。 注意节点为空的条件, 中,只要有一棵树树为空就返回 ; 中,要先判断 ,如果 为 ...
分类:
其他好文 时间:
2020-03-06 23:37:49
阅读次数:
72
link #include <bits/stdc++.h> # define LL long long using namespace std; class TreeNode{ public: int val; TreeNode* left; TreeNode* right; TreeNode(in ...
分类:
其他好文 时间:
2020-03-06 15:16:46
阅读次数:
61
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 思路:先在A树中找到与B跟结点相同的那个结点,然后递归开始比较左右子树 public class Solution { public boolean HasSubtree(TreeNode root1,Tre ...
分类:
其他好文 时间:
2020-03-05 20:59:39
阅读次数:
75
题目描述: 题解:一开始处理的时候写了个dfs一直超时,其实先用bfs找到所有可能的起始点,对每个起始点dfs一下就可以了。 (纯dfs的话,如果树很深的时候,会一直先尝试一个分支到低端,很容易就超时了) AC代码: class Solution { public: int dfs(ListNode ...
分类:
其他好文 时间:
2020-03-02 10:32:26
阅读次数:
43