
Binary Tree
我为老师建博客
这个作者很懒,什么都没留下…
展开
-
572. Subtree of Another Tree Medium
第一次做二叉树的题目。首先要知道,二叉树的题目,大部分都可以用递归来解决。 对于这道题,我们先考虑一个子问题,怎么样判断两棵树是不是相同的树。我们可以先比较两个树根,这里分几种情况: 1.两个树根都是空,则树相同。 2.两个树根只有一个为空,则肯定不相同。 3.两个树根都不为空,这里分两种情况:树根处的值相等,那我们需要继续比较他们的儿子是否相等;如果值不相等,则树不相等。 如果原创 2017-05-07 18:29:48 · 256 阅读 · 0 评论 -
617. Merge Two Binary Trees Easy
这题要求合并两个二叉树,相同位置的节点数值相加,如果有不存在的情况,采用存在的那个子树。 主要思想:采用递归,两个子树同时遍历,从某一根节点开始,先考虑根。我们直接在第一个子树上修改。如果第二个子树为空,什么都不做。如果第一个为空,第二个不空,直接采用第二个子树。如果都不空,把根处的值相加,然后递归的处理左子树和右子树。 细节:递归的函数需要指针加引用 class Solut原创 2017-06-11 11:31:44 · 159 阅读 · 0 评论 -
94. Binary Tree Inorder Traversal 中序遍历
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ clas原创 2017-06-25 18:46:16 · 167 阅读 · 0 评论 -
98. Validate Binary Search Tree
判断是否是BST,需要注意的是你不能只判断root的左儿子小于根节点,根节点小于右儿子,而是需要保证右子树所有的点都要大于根节点,左子树所有的点都小于根节点。所以可以做中序遍历,然后判断遍历所得的数组,是否是递增的。 class Solution { public: vector n; bool isValidBST(TreeNode* root) { n.clear(原创 2017-06-25 20:56:46 · 190 阅读 · 0 评论 -
513. Find Bottom Left Tree Value (vector & queue)
这道题要求二叉树最下边一层的最左边的节点,是一道比较简单的题。主要当作给Java练习了。 首先是第一个版本:主要思想就是从根节点开始,逐步求下一层的节点,并替换到nodes中。如果发现下一层的节点(用temp来临时存储)是空的,就说明到了最后一层。results来标记每一层最左边的节点,最后就是结果。 import java.util.*; class Solution {原创 2017-09-05 00:36:12 · 315 阅读 · 0 评论 -
100. Same Tree
判断两个二叉树是否相同 class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { if(p == null && q == null)return true; if(p == null || q == null)return false; if(p.原创 2017-09-02 14:29:15 · 202 阅读 · 0 评论