Leetcode Tree 总结

遍历相关

102. Binary Tree Level Order TraversalAC代码
层次遍历(区分每一层)
103. Binary Tree Zigzag Level Order TraversalAC代码
之字形层次遍历
107. Binary Tree Level Order Traversal IIAC代码
从下到上的层次遍历
515. Find Largest Value in Each Tree RowAC代码
求每一层的最大值
637. Average of Levels in Binary TreeAC代码
求每一层的平均值

144. Binary Tree Preorder Traversal迭代解法
前序遍历
94. Binary Tree Inorder Traversal迭代解法
中序遍历
145. Binary Tree Postorder Traversal迭代解法
后序遍历

199. Binary Tree Right Side Viewqueue迭代解法stack迭代解法DFS解法
求二叉树的右视图
513. Find Bottom Left Tree Valuequeue迭代解法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 SumDFS迭代版
给定一棵二叉树和一个整数sum,判断二叉树是否存在一条从根节点到叶节点的路径,路径之和为sum
113. Path Sum IIDFS迭代版
给定一棵二叉树和一个整数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递归解法
将两棵二叉树t1t2的对应节点的val值相加,这两棵二叉树的结构不相同,最终的二叉树的结构是t1t2的并集

递归解法

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 TreeAC代码
判断一棵二叉树是否为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
给定两棵非空二叉树st,判断s是否为t的子树

501. Find Mode in Binary Search Tree
给定一棵BST,求节点值的众数(这意味着BST的节点值会出现重复)

猜你喜欢

转载自blog.csdn.net/o0Helloworld0o/article/details/81290682