几个技巧,在树中的先序遍历就是对应的Depth-first-search.
100. Same Tree https://leetcode.com/problems/same-tree/
遍历树的节点,判断树节点的node的val是否一致,并且递归判断左右孩子
301. Remove Invalid Parentheses https://leetcode.com/problems/remove-invalid-parentheses/
利用深度优先的递归匹配,然后判断左右括号的数目,在任何时候左括号的数目应该大于等于右括号的数目,每次当括号数目相等时候,就可以进行判断。
129. Sum Root to Leaf Numbers https://leetcode.com/problems/sum-root-to-leaf-numbers/
也是一个先序遍历,用sum来统计一个路径的值,然后最后加到result结果中。
101. Symmetric Tree
https://leetcode.com/problems/symmetric-tree/
也是一个先序遍历的需要遍历左右节点的判断对称树的算法
注意这句话 return left.val==right.val && isSymmetric(left.left, right.right)&& isSymmetric(left.right, right.left);
112. Path Sum
https://leetcode.com/problems/path-sum/
一个先序遍历然后得到Path Sum 然后判断是否为需要的Path sum
113. Path Sum II
https://leetcode.com/problems/path-sum-ii/
仍然是先序遍历,然后进行回溯,注意回退然后去掉LinkedList中的最后一个元素
111. Minimum Depth of Binary Tree
https://leetcode.com/problems/minimum-depth-of-binary-tree/
求depth的题和求Sum的题一样,使用先序遍历
104. Maximum Depth of Binary Tree
https://leetcode.com/problems/maximum-depth-of-binary-tree/
然后利用Max Depth和最大的depth做对比,然后进行赋值
124. Binary Tree Maximum Path Sum
https://leetcode.com/problems/binary-tree-maximum-path-sum/
Leetcode中考Binary Tree Path的题还是挺多的,这道题是一道典型的题,然后只是需要记录maximum Path sum,
110. Balanced Binary Tree
https://leetcode.com/problems/balanced-binary-tree/需要返回树的
高度进行判断,它的判断条件是,左右子树均是Balanced Binary Search tree, 然后自己也可以达到Balanced Binary Search Tree的条件