#二叉树#算法#leetcode
今天下班晚,回家已经十点多了,题目明显已经刷不动了,而且今天公司也有比较多事,很累,只做了一道题,先记录下来,继续做效率肯定很低了,剩下的三道题后续补充。怎么感觉有点跟不上进度了,不行呀小伙子,继续加油!
226.翻转二叉树
题目链接:226. 翻转二叉树 - 力扣(LeetCode)给你一棵二叉树的根节点 root
,翻转这棵二叉树,并返回其根节点。
这道题的思路就是遍历二叉树,将所有节点的孩子节点翻转即可,主要是遍历顺序的问题,最好是先序遍历或者后续,因为中序遍历会把某些节点的左右孩子翻转了两次!
具体代码:
public TreeNode invertTree(TreeNode root) {
if(null == root) {
return root;
}
swapChildNode(root);
invertTree(root.left);
invertTree(root.right);
return root;
}
private void swapChildNode(TreeNode root) {
TreeNode temp = root.left;
root.left = root.right;
root.right = temp;
}
二叉树真实到处都有递归,还得多想想,有时候看代码听简单的,但是思路其实是更重要的。
101. 对称二叉树
104.二叉树的最大深度
111.二叉树的最小深度
后续补充!