件名の説明:
この方法の一つ:
クラスのソリューション: DEF findMaximumXOR(セルフ、NUMS:リスト[INT]) - > int型: ルート =のTreeNode(-1 ) のための NUM でNUMS: cur_node =ルート#現在のノード のための I における範囲(0、32): #の代表32ビット #の印刷NUM、<< 1(31は- I)、およびNUM(<< 1(31は- I)。)。 IF NUM&(<< 1(31は- I))== 0: #現在位置の場合と演算の結果が1である場合、移動する左 IF ないcur_node.left: cur_node.left = ツリーノード(0) cur_node= Cur_node.left 他: #現在の位置や操作の結果が0であれば、どこへ行くか、右に回し IF ないcur_node.right: cur_node.right =のTreeNode(1 ) cur_node = cur_node.right cur_node.left =のTreeNode(NUM) #を中最後の葉ノードは、この数の値についての記録を残した RES = 0 のために NUM で:NUMS cur_node = 根 用 I における範囲(0、32 ) 位cur_node.val印刷、cur_node.leftは、cur_node.right IF:== 0 NUM - &(I)<< 1(31)と #のそれならば、計算結果が0である、右側のサブので、すぐに右に行くことができます図1は、このいずれかのように異なるツリーを表し、または1を取得する のIF cur_node.right: #は右に歩くことができる cur_node = cur_node.right #を右に行くために 、他: #は右に行くことができない cur_node = cur_node.left #Jiuwang行くために左に それ以外: #の計算結果は、それらが残って行くことができるならば、左部分木は排他的になります0、または1を表しているので、あなたは、左に行く、1である IF cur_node.left: #は左に行くことができ cur_node = cur_node.left #左に行きます 他: #は左に行くことができない cur_node = cur_node.right #右に行き TEMP = cur_node.left.val #このパスに保存されている番号の得られた値 RES = MAX(RES、NUM ^ TEMP) #各リフレッシュはRESです最大 リターン RES