LeetCode-二叉树
heimu24
这个作者很懒,什么都没留下…
展开
-
【二叉树-1】leetcode94:二叉树的中序遍历(Binary Tree Inorder Traversal)
题目链接和参考链接 题目描述: 给定一个二叉树,返回它的中序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,3,2] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 思想: 中序遍历:先递归左子树,再处理根节点,最后递归右子树 import java.util.ArrayList; import java.util.List; class TreeNod...原创 2019-07-13 22:30:40 · 118 阅读 · 0 评论 -
【二叉树-2】二叉树的层级遍历:从上到下按层打印
题目描述: 给定一个二叉树,返回其按层次遍历的节点值,即按照层次,从上到下,从左到右遍历所有结点 例如:给定下列二叉树,打印结果[[1], [2, 3], [4, 5, 6, 7]] 思想: 使用广度优先搜素,即使用队列(先进先出) 先判断根节点是否为空,若是,直接返回 若非空,将根节点入队,然后判断队列是否为空,若不为空,访问队首结点(保存或打印),然后将队首结点出队,接着判断其左右子节点是...原创 2019-08-20 15:42:17 · 508 阅读 · 0 评论 -
【二叉树-3】打印二叉树中和为target的所有路径
参考链接 题目描述: 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 思想: 利用树的先序遍历访问所有结点,先将当前结点存储,然后更新target为target-root.val,继续递归访问其左右子树即可。如果到达叶子结点的时候,target==0,则当前路径即为所求路径 import java.uti...原创 2019-08-20 17:59:48 · 679 阅读 · 0 评论 -
【二叉树-4】给定数组生成完全二叉树
题目描述: 给定一个数组,生成一个完全二叉树,也就是将数组的值赋给二叉树的各个节点 思想: 先将数组的值全部转化树节点,并将树节点存储到LinkedList中 遍历所有的父节点(除最后一个),然后给其左右孩子赋值(树结点) 处理最后一个父节点,因为最后一个父节点可能没有右孩子 注意: 1、父节点数组下标从0到 n/2 -1 ,但是遍历时要小于n/2-1,因为最后一个父节点可能没有右孩子,当n/...原创 2019-08-20 18:44:35 · 3493 阅读 · 0 评论