摘要:
从中序与后序遍历序列构造二叉树 题目: 根据一棵树的中序遍历与后序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 中序遍历 inorder = [9,3,15,20,7] 后序遍历 postorder = [9,15,7,20,3] 返回如下的二叉树: 解题思路:和从前序与中序
阅读全文
摘要:
从前序与中序遍历序列构造二叉树 题目: 根据一棵树的前序遍历与中序遍历构造二叉树。 注意: 你可以假设树中没有重复的元素。 例如,给出 前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = [9,3,15,20,7] 返回如下的二叉树: 解题思路:前序数组的第一个
阅读全文
摘要:
最大二叉树 题目: 给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下: 二叉树的根是数组中的最大元素。 左子树是通过数组中最大值左边部分构造出的最大二叉树。 右子树是通过数组中最大值右边部分构造出的最大二叉树。 通过给定的数组构建最大二叉树,并且输出这个树的根节点。 示例 : 输
阅读全文
摘要:
填充每个节点的下一个右侧节点指针 题目:给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下: struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针,让这个指针指向其
阅读全文
摘要:
二叉树展开为链表 题目: 给定一个二叉树,原地将它展开为一个单链表。 例如,给定二叉树 将其展开为: 解题思路:运用前序遍历将节点添加进list中,然后遍历list改变每一个节点的左右节点 /** * Definition for a binary tree node. * public class
阅读全文
摘要:
翻转二叉树 题目: 翻转一棵二叉树。 示例: 输入: 输出: 解题思路:运用递归从上至下进行翻转 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * Tree
阅读全文