一.二叉樹的遍歷
1.二叉樹中序遍歷
a.遞歸寫法
b.迭代
遞歸寫法很簡單,迭代法用到棧stack。
思路是:迭代法,把root放到一個stack裏,利用棧後進先出的性質,在迭代中令root=root.left,到了底部之後,從棧中彈出根節點,令root=root.right,達到遍歷[左,跟,右]的目的。
2.二叉樹的前序遍歷
迭代法思路:建立一個棧stack,先root.right,再root.left,彈出的時候就先彈出left,再right.
3.二叉樹的層序遍歷
二.重建二叉樹
1.根據前序遍歷和中序遍歷構建二叉樹
三.二叉樹的序列化
思路:前序遍歷,遇到葉子節點,返回"#"
四.二叉樹的深度/平衡二叉樹
二叉樹的深度
遞歸寫法。左邊的深度,右邊的深度,取最大值。
平衡二叉樹
平衡二叉樹,任意節點的子樹的高度差都小於等於1。在判斷完當前節點是否爲平衡二叉樹的之後,還要判斷他的左右子樹實不是平衡二叉樹
五.二叉搜索樹的第K個節點
中序遍歷
六.二叉樹的鏡像/對稱二叉樹
二叉樹的鏡像
思路:反轉左右子樹,遞歸的對左右子樹反轉。
對稱二叉樹
思路:不能用鏡像二叉樹來判斷。因爲鏡像之後,root就變成他的鏡像樹了,一直是true。
正確的思路是:判斷左右子樹是否相等,遞歸的進行。
七.二叉樹的最近公共祖先
https://blog.csdn.net/hotpotbo/article/details/83246493
八.trie樹
力扣208