2 つのバイナリ ツリーを (順序どおりに) 比較したいのですが、同じでない場合はできるだけ早く戻りたいと考えています。
両方のツリーをトラバースして出力を比較できることは知っていますが、よりスマートなソリューションが何らかの形で最も早い時期に返されることを望んでいます。
scala でエレガントな方法でこれを行うにはどうすればよいでしょうか? 俳優?
ノード:
case class Node(
var data: Int,
left:Option[Node],
right:Option[Node]
)
私のメインには、現在まったく同じ3つのツリーがありますが、必要に応じて変更できるようにここに貼り付けるだけです:
def main( args:Array[String] ) = {
val tree = Node( (3),
None,
Some(Node( (5),
Some(Node( (1),
None,
None )),
Some(Node( (9),
None,
Some(Node( (15),
None,
None )) )) )) )
val tree2 = Node( (3),
None,
Some(Node( (5),
Some(Node( (1),
None,
None )),
Some(Node( (9),
None,
Some(Node( (15),
None,
None )) )) )) )
val tree3 = Node( (3),
None,
Some(Node( (5),
Some(Node( (1),
None,
None )),
Some(Node( (9),
None,
Some(Node( (15),
None,
None )) )) )) )
}