二叉树的深度
一个树的深度等于max(左子树深度,右子树深度)+1。
c#版本:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 二叉树深度
{
class Program
{
class Node
{
string data;
public Node LeftNode { get; set; }
public Node RightNode { get; set; }
public Node(string data)
{
this.data = data;
}
}
static int GetDepth(Node root)
{
if (root == null)
return 0;
int leftDepth = GetDepth(root.LeftNode);
int rightDepth = GetDepth(root.RightNode);
return leftDepth > rightDepth ? leftDepth + 1 : rightDepth + 1;
}
static void Main(string[] args)
{
Node node0 = new Node("0");
Node node1 = new Node("1");
Node node2 = new Node("2");
Node node3 = new Node("3");
Node node4 = new Node("4");
Node node5 = new Node("5");
Node node6 = new Node("6");
Node node7 = new Node("7");
Node node8 = new Node("8");
node0.LeftNode = node1;
node0.RightNode = node2;
node1.LeftNode = node3;
node1.RightNode = node4;
node2.LeftNode = node5;
node2.RightNode = node6;
node4.RightNode = node7;
node7.RightNode = node8;
Console.WriteLine(GetDepth(node0));
}
}
}