摘要: 深度优先搜索 class Solution { List list = new LinkedList(); public List<Integer> postorderTraversal(TreeNode root) { if (root == null){ return list; } posto 阅读全文
posted @ 2021-10-27 20:26 振袖秋枫问红叶 阅读(64) 评论(0) 推荐(0)
摘要: 深度优先搜索 import java.util.ArrayList; import java.util.List; class Solution { List list = new ArrayList(); public List<Integer> preorderTraversal(TreeNod 阅读全文
posted @ 2021-10-27 20:19 振袖秋枫问红叶 阅读(46) 评论(0) 推荐(0)
摘要: 深度优先搜索 class Solution { public boolean hasPathSum(TreeNode root, int targetSum) { /** * 递归终止条件 * 节点为空时返回false * 节点没有孩子,剩余的数值等于节点值时返回true */ if (root = 阅读全文
posted @ 2021-10-27 20:09 振袖秋枫问红叶 阅读(33) 评论(0) 推荐(0)
摘要: 广度优先搜索 class Solution { public int minDepth(TreeNode root) { if (root == null){ return 0; } Queue<TreeNode> queue = new LinkedList<>(); int depth = 1; 阅读全文
posted @ 2021-10-27 18:57 振袖秋枫问红叶 阅读(48) 评论(0) 推荐(0)
摘要: 深度优先搜索 class Solution { public boolean isSymmetric(TreeNode root) { return isSymmetric(root.left, root.right); } /** * 后序遍历 * 从根节点的左右孩子开始递归 */ public 阅读全文
posted @ 2021-10-27 18:36 振袖秋枫问红叶 阅读(32) 评论(0) 推荐(0)
摘要: 深度优先搜索 class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { /** * 除非p和q共同为null或者都不为null,否则返回false */ if (p == null || q == null){ retu 阅读全文
posted @ 2021-10-27 17:03 振袖秋枫问红叶 阅读(42) 评论(0) 推荐(0)
摘要: 深度优先搜索 class Solution { List list = new LinkedList(); public List<Integer> inorderTraversal(TreeNode root) { if (root == null){ return list; } inorder 阅读全文
posted @ 2021-10-27 16:42 振袖秋枫问红叶 阅读(50) 评论(0) 推荐(0)
摘要: 深度优先搜索 class Solution { public int maxDepth(TreeNode root) { if (root == null){ return 0; } /** * 根节点的高度就是二叉树的最大深度,使用前序遍历求的就是深度,使用后序遍历求的是高度 * 本题可以通过后序 阅读全文
posted @ 2021-10-27 16:29 振袖秋枫问红叶 阅读(41) 评论(0) 推荐(0)
摘要: 常用树结构 二分搜索树 平衡二分搜索树(AVL)、红黑树 堆;并查集 线段树;Trie(字典树、前缀树) 二叉树基础 和链表一样,二叉树是一种动态数据结构,数据存储在“节点”(Node)中,left指针指向左孩子,right指针指向右孩子 二叉树具有唯一根节点,每个节点最多有两个孩子,没有孩子的节点 阅读全文
posted @ 2021-10-27 15:20 振袖秋枫问红叶 阅读(66) 评论(0) 推荐(0)