二叉树(二)

求树的高度:

 1 public static <T> int height(TNode<T> t){
 2     int heightLeft, heightRight, heightval;
 3     
 4     if(t == null)
 5         heightval = -1;
 6     else
 7         {
 8             heightLeft = height(t.left);
 9             heightRight = height(t.right);
10             
11             heightval = 1 + ( heightLeft > heightRight ? heightLeft:heightRight );
12         }
13         return heightval;
14 }
15 //复制树:
16 public static <T> TNode<T> copyTree(TNode<T> t)
17 {
18     TNode<T> newLeft, newRight, newNode;
19 
20     if(t == null)
21         return null;
22     newLeft = copyTree(t.left);
23     newRight = copyTree(t.right);
24 
25     newNode = new TNode<T> (t.nodeValue, newLeft, newRight);
26 
27     return newNode;
28 }
29 //清除树:
30 public static <T> void clearTree(TNode<T> t)
31 {
32     If(t != null)
33     {
34         clearTree(t.left);
35         clearTree(t.right);
36         t = null;
37 }
38 }

 

 

posted @ 2013-12-25 22:26  soul390  阅读(155)  评论(0)    收藏  举报