二叉树
有梦想的小树
盛年不重来,一日难再晨,及时当勉励,岁月不待人
展开
-
【剑指offer】---重建二叉树(Python)
题目描述:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。CODE:# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self,...原创 2019-03-06 20:28:56 · 2156 阅读 · 0 评论 -
【剑指offer】---树的子结构(Java)
题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)CODE/*思路:参考剑指offer1、首先设置标志位result = false,因为一旦匹配成功result就设为true,剩下的代码不会执行,如果匹配不成功,默认返回false2、递归思想,如果根节点相同则递归调用DoesTree1HaveTree2(),如果根节点不相同,...原创 2019-03-15 19:34:18 · 109 阅读 · 0 评论 -
【剑指offer】---二叉树的镜像(Java)
题目描述操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5...原创 2019-03-16 22:02:11 · 193 阅读 · 0 评论 -
【剑指offer】---从上往下打印二叉树(Java)
题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。CODEimport java.util.ArrayList;import java.util.Deque;import java.util.LinkedList;/**public class TreeNode { int val = 0; TreeNode left = null; Tr...原创 2019-03-19 19:43:42 · 178 阅读 · 0 评论 -
【剑指offer】---二叉搜索树的后序遍历序列(Java)
题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。CODE//后序BST,序列最后一个是root,它比所有左子树大,比所有右子树小,可以利用这个性质设置递归函数来判断public class Solution { public boolean VerifySquenceOfBST...原创 2019-03-19 20:06:14 · 170 阅读 · 0 评论 -
【剑指offer】---二叉树中和为某一值的路径(Java)
题目描述输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)CODEimport java.util.ArrayList;/**public class TreeNode { int val = 0; TreeNod...原创 2019-03-19 21:17:31 · 99 阅读 · 0 评论 -
红黑树
一、定义红黑树的五个性质:一般的,红黑树(一棵自平衡的排序二叉树),满足以下性质,即只有满足以下性质的树,我们才称之为红黑树:1)每个结点要么是红的,要么是黑的。2)根结点是黑的。3)每个叶结点,即空结点(NIL)是黑的。4)如果一个结点是红的,那么它的俩个儿子都是黑的。5)对每个结点,从该结点到其子孙结点的所有路径上包含相同数目的黑结点。抓住了红黑树的那5个性质,...转载 2019-04-25 09:09:39 · 125 阅读 · 0 评论 -
二叉树的递归遍历、非递归遍历、层次遍历
1.递归遍历2.非递归遍历3.层次遍历1.递归遍历在使用递归遍历的时候,每个节点会经过三次.public class PreInPosTraversal { public static class Node { public int value; public Node left; public Node right; public Node(int da...原创 2019-10-13 15:28:28 · 583 阅读 · 0 评论 -
二叉树中找到一个节点的后继节点
1.后继节点:二叉树的中序遍历下,某节点的后一个节点就是后继节点。2.两种情况:节点有右子树:右子树中的最左节点就是该节点的后继节点。可以通过“左中右”顺序理解一下。 节点无右子树:一直向上查找,直到该节点是父节点的左孩子,即为后继节点。3.节点的数据结构,比一般情况下多了一个parent节点。该结构比普通二叉树节点结构多了一个指向父节点的parent指针。 假设有一 棵Node类型...原创 2019-10-13 15:53:24 · 927 阅读 · 0 评论