遍历相关
102. Binary Tree Level Order Traversal(AC代码)
层次遍历(区分每一层)
103. Binary Tree Zigzag Level Order Traversal(AC代码)
之字形层次遍历
107. Binary Tree Level Order Traversal II(AC代码)
从下到上的层次遍历
515. Find Largest Value in Each Tree Row(AC代码)
求每一层的最大值
637. Average of Levels in Binary Tree(AC代码)
求每一层的平均值
144. Binary Tree Preorder Traversal(迭代解法)
前序遍历
94. Binary Tree Inorder Traversal(迭代解法)
中序遍历
145. Binary Tree Postorder Traversal(迭代解法)
后序遍历
199. Binary Tree Right Side View(queue迭代解法,stack迭代解法,DFS解法)
求二叉树的右视图
513. Find Bottom Left Tree Value(queue迭代解法,stack迭代解法,DFS解法)
寻找二叉树的左下节点(即最下一层的最左节点)
Depth相关
104. Maximum Depth of Binary Tree(迭代解法,递归解法)
求二叉树的深度(最大深度)
111. Minimum Depth of Binary Tree(递归解法)
求二叉树的最小深度(即二叉树根节点到叶节点的最短路径的长度)
110. Balanced Binary Tree(递归解法)
判断一棵二叉树是否是平衡的
543. Diameter of Binary Tree(递归解法)
求树的最大直径
Path相关
257. Binary Tree Paths
求所有根节点到叶节点的路径
112. Path Sum(DFS迭代版)
给定一棵二叉树和一个整数sum
,判断二叉树是否存在一条从根节点到叶节点的路径,路径之和为sum
113. Path Sum II(DFS迭代版)
给定一棵二叉树和一个整数sum
,找出所有从根节点到叶节点的路径,路径之和为sum
437. Path Sum III
给定一棵二叉树和一个整数sum
,求二叉树中有几条路径的和为sum
(这里的路径值二叉树的任意一个节点向下走到另一个节点)
129. Sum Root to Leaf Numbers(递归解法)
二叉树根节点到叶节点的路径看成一个整数,求所有这些整数的和
Subtree Sum相关
508. Most Frequent Subtree Sum(递归解法)
一棵二叉树的不同子树有自己的Subtree Sum,求最频繁的Subtree Sum
814. Binary Tree Pruning(递归解法)
一棵二叉树只包含0和1,剪掉所有只包含0的子树
563. Binary Tree Tilt(递归解法)
求二叉树所有节点的tile(倾斜度)之和
The tilt of a tree node is defined as the absolute difference between the sum of all left subtree node values and the sum of all right subtree node values.
其它在某个函数中完成任务
687. Longest Univalue Path
求二叉树中Longest Univalue Path的长度
124. Binary Tree Maximum Path Sum
给定一棵二叉树,求路径之和的最大值(路径指从一个节点向上或向下走到另一个节点)
迭代+递归解法
100. Same Tree(迭代解法,递归解法)
判断两棵树是否相同
101. Symmetric Tree(迭代解法,递归解法)
判断一棵二叉树是否对称
226. Invert Binary Tree(迭代解法,递归解法)
反转二叉树(也叫二叉树的镜像)
617. Merge Two Binary Trees(递归解法)
将两棵二叉树t1
和t2
的对应节点的val
值相加,这两棵二叉树的结构不相同,最终的二叉树的结构是t1
和t2
的并集
递归解法
222. Count Complete Tree Nodes(递归解法)
给定一棵完全二叉树,求它的节点数量
654. Maximum Binary Tree(递归解法)
给定一个数组,构造Maximum Binary Tree,在一个数组nums[left..right]
中,以最大值为根节点,假设为nums[max_index]
,则左子树节点为nums[left..max_index-1]
,右子树节点为nums[max_index+1..right]
105. Construct Binary Tree from Preorder and Inorder Traversal(递归解法)
由前序和中序遍历构造二叉树
106. Construct Binary Tree from Inorder and Postorder Traversal(递归解法)
由中序和后序遍历构造二叉树
655. Print Binary Tree(递归解法)
打印二叉树
606. Construct String from Binary Tree(递归解法)
由二叉树构造形如“根(左)(右)”的字符串
337. House Robber III(递归解法)
在一棵二叉树上进行窃取,不能同时窃取相邻节点,求窃取的最大价值
872. Leaf-Similar Trees
一颗二叉树的leaf value sequence为它的叶节点从左到右组成的序列,判断两棵二叉树的leaf value sequence是否相同
116. Populating Next Right Pointers in Each Node(难,递归解法)
二叉树节点多了一个next成员,指向该节点的右边节点,给定一棵没有赋值next成员的二叉树,完成next成员的赋值
BST相关
108. Convert Sorted Array to Binary Search Tree(递归解法)
将排序的数组转换为平衡的BST
230. Kth Smallest Element in a BST(递归解法)
求BST的第k小元素
669. Trim a Binary Search Tree(递归解法)
给定范围[L, R]
,对一颗BST进行裁剪,使得所有节点的val
落在[L, R]
内
653. Two Sum IV - Input is a BST
BST树中的Two Sum问题
538. Convert BST to Greater Tree
将BST转换为Greater Tree
98. Validate Binary Search Tree(AC代码)
判断一棵二叉树是否为BST
404. Sum of Left Leaves
求所有左叶子节点的val值之和
684. Redundant Connection
给定一个含有N个节点无向图,边数为N,删除一条边,使之成为一棵树(多解情况下取编号最大的那一条边)
671. Second Minimum Node In a Binary Tree
一棵二叉树每个节点要么没有左右子树,要么左右子树同时存在,求二叉树中第二小的val值
235. Lowest Common Ancestor of a Binary Search Tree
在一棵BST中,求两个节点的最低公共祖先
236. Lowest Common Ancestor of a Binary Tree
在一棵普通二叉树中,求两个节点的最低公共祖先
572. Subtree of Another Tree
给定两棵非空二叉树s
和t
,判断s
是否为t的子树
501. Find Mode in Binary Search Tree
给定一棵BST,求节点值的众数(这意味着BST的节点值会出现重复)