[アルゴリズム] 226反転バイナリツリー

バイナリツリーを反転。

例:

入力:

     4
   / \
  2 7
 / \ / \
1 3 6 9

出力:

     4
   / \
  7 2
 / \ / \
9 6 3 1

 

/ * *
 *バイナリツリーノードの定義。
 *機能ツリーノード(ヴァル){
 * this.val =ヴァル;
 * this.left = this.right = NULL;
 *}
 * / 
/ * *
 * @param {ツリーノード}ルート
 * @return {}ツリーノード
 * /

// すべてのノードはかかわら行くにBFSを使って
 // ノードに子がある場合、子供スワップ
するvar invertTree = 機能(ルート){
   スタックしましょう = [ルート];
    
    しばらく(stack.length!== 0 ){
        聞かせてCRT = stack.shift()
        
        もし(!CRT = 未定義){
             VARの温度= crt.right。
            crt.right = crt.left
            crt.left = 温度;

            stack.push(crt.left)。        
            stack.push(crt.right)。
        }
    }
    
    リターンルート
}。

 

おすすめ

転載: www.cnblogs.com/Answer1215/p/12292648.html