新聞中心
110.平衡二叉樹
用后序遍歷的思想,根節(jié)點最后遍歷就是為了最后收集子節(jié)點信息。
遞歸 先遍歷左子,再右子:這個時候有4種情況:
- 左子 return -1. 因為他發(fā)現(xiàn)上一個已經(jīng)不符合平衡了
- 右子 return -1. 同上
- 當(dāng)前的遞歸邏輯計算:>1 直接返回 -1,否則我就繼續(xù)+1 并且那這個信息傳遞上去
257. 二叉樹的所有路徑
- 首先確定用哪種遍歷: 前序 : 倒推,因為要實現(xiàn)的輸出是從root 開始,下一個是他的左子,所以只有前序可以實現(xiàn)這樣的輸出
但是這道題還是不會丫。。為了打卡先發(fā)布,理解了趕緊回來更新TT
(疑惑: 遍歷肯定會左右, 那我如何讓她只推左子的node進(jìn)去,或者只推右子進(jìn)去
解答:用回溯,會把node拿出來 )
404.左葉子之和
難點就是:如何判定 遍歷到的葉子節(jié)點是 左孩子?
答: 遍歷到倒數(shù)第二個node的時候(該點的父節(jié)點),看他的左孩子是否為空,如果不空,那這個node的左右節(jié)點是不是為null?
if ((node.left != null) && (node.left.left != null) && (node.left.right!= null))
sum += node.left.val;
這個3種遍歷都可以:因為只是求一個值,從上往下,或者從下往上上傳遞數(shù)值都可以
我用的是迭代的方法 再結(jié)合用后序遍歷的模板,相對會比較好寫一些。
具體操作如下:按照后序的模板,只不過在Pop出來的node時,對該node進(jìn)行判斷(判斷邏輯如上)
最后返回 sum 即可
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
本文題目:代碼隨想錄算法訓(xùn)練營第十七天|110.平衡二叉樹404.左葉子之和-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://www.dlmjj.cn/article/dipgcj.html