文章分类 -  leetcode-Tree

摘要:将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 阅读全文
posted @ 2019-07-28 11:23 天涯海角路 阅读(118) 评论(0) 推荐(0)
摘要:给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其自底向上的层次遍历为:[ [15,7], [9,20], [3]]思路正常BFS 阅读全文
posted @ 2019-07-28 11:08 天涯海角路 阅读(110) 评论(0) 推荐(0)
摘要:给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 1 2 3 4 5返回其自底向上的层次遍历为:[ [15,7], [9,20], [ 阅读全文
posted @ 2019-07-28 11:07 天涯海角路 阅读(121) 评论(0) 推荐(0)
摘要:之前写过一个java树迭代的笔记。是将线性结构数据(List)转化为树型结构数据《java 树迭代-反向迭代》。现在记录一个与之对应的一个逆向过程: 已有的一棵树型结构数据,如何遍历它,获取并操作里面的每一个节点。 一般存在两种方法:递归与非递归。而每种方法都有两种策略:深度优先和广度优先。这四个概 阅读全文
posted @ 2019-07-28 10:58 天涯海角路 阅读(810) 评论(0) 推荐(0)
摘要:1.广度优先遍历 英文缩写为BFS即Breadth First Search。其过程检验来说是对每一层节点依次访问,访问完一层进入下一层,而且每个节点只能访问一次。对于上面的例子来说,广度优先遍历的 结果是:A,B,C,D,E,F,G(假设每层节点从左到右访问)。 先往队列中插入左节点,再插右节点, 阅读全文
posted @ 2019-07-28 10:56 天涯海角路 阅读(1125) 评论(0) 推荐(0)
摘要:一、二叉树的深度优先遍历(DFS)有递归和非递归两种方法,递归很简单,先上递归代码1.递归: public void depthOrderTraversalWithRecursive() { depthTraversal(root); } private void depthTraversal(Tr 阅读全文
posted @ 2019-07-28 10:55 天涯海角路 阅读(708) 评论(0) 推荐(0)
摘要:在编程生活中,我们总会遇见树性结构,这几天刚好需要对树形结构操作,就记录下自己的操作方式以及过程。现在假设有一颗这样树,(是不是二叉树都没关系,原理都是一样的) 1.广度优先遍历 英文缩写为BFS即Breadth FirstSearch。其过程检验来说是对每一层节点依次访问,访问完一层进入下一层,而 阅读全文
posted @ 2019-07-28 10:53 天涯海角路 阅读(1153) 评论(0) 推荐(0)
摘要:104. 二叉树的最大深度JAVA版本/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) 阅读全文
posted @ 2019-07-28 10:43 天涯海角路 阅读(98) 评论(0) 推荐(0)
摘要:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。思路:很简单,当前结点深度等于左右子树中较大 阅读全文
posted @ 2019-07-28 10:42 天涯海角路 阅读(79) 评论(0) 推荐(0)
摘要:题目来源:https://leetcode-cn.com/problems/symmetric-tree/题目描述:给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \ 3 4 4 3但是下面这个 [1,2,2,null 阅读全文
posted @ 2019-07-28 10:33 天涯海角路 阅读(98) 评论(0) 推荐(0)
摘要:101. 对称二叉树class Solution {public: bool isSymmetric(TreeNode* root) { if(root==NULL) return true; return sychelp(root->left,root->right); } bool sychel 阅读全文
posted @ 2019-07-28 10:30 天涯海角路 阅读(81) 评论(0) 推荐(0)
摘要:Easy! 题目描述: 给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 说明: 如果你可以运用递归和迭代两种方法解决这个问题,会很加分。 解题思路: 判断二叉树是否是平衡 阅读全文
posted @ 2019-07-28 10:28 天涯海角路 阅读(106) 评论(0) 推荐(0)
摘要:题目 思路 题目不难,判断两个二叉树是否相等,只需要判断三个条件: 两个根结点的val相等 两个左结点相等 两个右结点相等 而题目所给的函数isSameTree()的作用就是判断两个结点是否相等,所以自然而然的想到了用递归来判断这两个树的左右结点是否相同。 代码如下 public class Mai 阅读全文
posted @ 2019-07-27 23:00 天涯海角路 阅读(38) 评论(0) 推荐(0)
摘要:100. Same TreeGiven two binary trees, write a function to check if they are equal or not.给定两个二叉树,写一个函数来检查它们是否相等。Two binary trees are considered equal 阅读全文
posted @ 2019-07-27 22:59 天涯海角路 阅读(84) 评论(0) 推荐(0)
摘要:给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]输出: true示例 2:输入: 1 1 / \ 2 2 [1,2], [1,null,2]输出 阅读全文
posted @ 2019-07-27 22:58 天涯海角路 阅读(127) 评论(0) 推荐(0)