本文整理匯總了C#中BinaryTree.InOrderBinaryTree方法的典型用法代碼示例。如果您正苦於以下問題:C# BinaryTree.InOrderBinaryTree方法的具體用法?C# BinaryTree.InOrderBinaryTree怎麽用?C# BinaryTree.InOrderBinaryTree使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類BinaryTree
的用法示例。
在下文中一共展示了BinaryTree.InOrderBinaryTree方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。
示例1: RecoverTree
public BinaryTree RecoverTree(BinaryTree root)
{
BinaryTree n1 = null;
BinaryTree n2 = null;
bool findingN2 = false;
int last = int.MinValue;
foreach (var cur in root.InOrderBinaryTree())
{
if (cur.Value <= last) // desending
{
n2 = cur;
findingN2 = true;
}
else
{
if (!findingN2)
{
n1 = cur;
}
}
last = cur.Value;
}
int tmp = n1.Value;
n1.Value = n2.Value;
n2.Value = tmp;
return root;
}
示例2: IsSymmetric2
public bool IsSymmetric2(BinaryTree root)
{
if (root == null)
return true;
var leftToRight = root.InOrderBinaryTree().ToList();
if (leftToRight.Count % 2 == 0)
return false;
var rightToLeft = root.InOrderBinaryTreeRightToLeft().ToList();
for (int i = 0; i < leftToRight.Count / 2; i++)
{
if (leftToRight[i].Value != rightToLeft[i].Value)
return false;
}
return true;
}
示例3: IsSymmetric
public bool IsSymmetric(BinaryTree root)
{
if (root == null)
{
return true;
}
var leftRight = root.InOrderBinaryTree().ToArray();
if (leftRight.Length % 2 == 0)
{
return false;
}
var rightLeft = root.InOrderBinaryTreeRightToLeft().ToArray();
for (int i = 0; i < leftRight.Length / 2; i++)
{
if (leftRight[i].Value != rightLeft[i].Value)
{
return false;
}
}
return true;
}