LeetCode 366. 寻找二叉树的叶子节点(上下翻转二叉树+BFS)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 366. 寻找二叉树的叶子节点(上下翻转二叉树+BFS)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
給你一棵二叉樹,請按以下要求的順序收集它的全部節點:
- 依次從左到右,每次收集并刪除所有的葉子節點
- 重復如上過程直到整棵樹為空
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/find-leaves-of-binary-tree
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
類似題目:LeetCode 156. 上下翻轉二叉樹(DFS)*
- 先自底向上,翻轉二叉樹,把子節點的 left,指向父節點
- 同時記錄父節點有多少個子節點(0,1,2,)
- 把葉子節點加入隊列
- 開始BFS,出隊一個,就把該節點的 left (原來的父節點的子節點計數 -1)
- 當節點的子節點計數為0時,它就變成了葉子節點,可以入隊了
0 ms 9 MB
- 上面做法遍歷了2次樹,更簡單的做法,按照樹的高度(2側子樹的最大高度 + 1自己)來分組
4 ms 9.1 MB
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode 366. 寻找二叉树的叶子节点(上下翻转二叉树+BFS)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 188. 买卖股票的最
- 下一篇: LeetCode 305. 岛屿数量 I