leetcode—hot100-樹1

一.二叉樹的遍歷

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

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章