上后谈爱情

导航

 
 1 package TreeNode;
 2 /**
 3  * 1. 将树转换成双向链表
 4  *  注意点: Java过程中 没有地址传递 ,只能将 pLastNode 设置成全局变量*/
 5 public class TreeCovertDoubleNode {
 6     
 7     private TreeNode Tree;
 8     public TreeCovertDoubleNode(TreeNode T)
 9     {
10         this.Tree=T;
11     }
12     
13     public TreeNode convert(TreeNode pRootTree)
14     {
15         // 
16         if(pRootTree==null || (pRootTree.left==null && pRootTree.right==null))
17             return pRootTree;
18         
19         
20         ConvertTree(pRootTree);
21         // 最后得到的pLastNode结点的值最大链表值
22         TreeNode pnewHead=pLastNode;
23         while(pnewHead!=null && pnewHead.left!=null)
24             pnewHead=pnewHead.left;
25         
26         PrintNode(pnewHead);
27         return pnewHead;
28     }
29     public void PrintNode(TreeNode pnewHead)
30     {
31         TreeNode p=pnewHead;
32         while(p!=null)
33         {
34             System.out.print(p.val+" ");
35             p=p.right;
36         }
37     }
38     TreeNode pLastNode=null;
39     public void ConvertTree(TreeNode pNode)
40     {
41         // 采用中序遍历
42         if(pNode==null)
43             return;
44         
45         TreeNode pcurrent=pNode;
46         
47         if(pcurrent.left!=null)
48             ConvertTree(pcurrent.left);
49         
50         pcurrent.left=pLastNode;
51         
52         if(pLastNode !=null)
53             pLastNode.right=pcurrent;
54         
55         pLastNode=pcurrent;// 出现问题在于pLastNode 是局部遍量,不是全局变量
56         
57         if(pcurrent.right!=null)
58             ConvertTree(pcurrent.right);
59     }
60     
61     public static void main(String[] args) {
62         // TODO Auto-generated method stub
63            int array1[]={10,6,14,4,8,12,16,-1,-1,-1,-1,-1,-1,-1,-1};
64            TreeCreate Tree1=new TreeCreate(array1);
65            Tree1.preShow(Tree1.root);
66            TreeCovertDoubleNode T=new TreeCovertDoubleNode(Tree1.root);
67            T.convert(T.Tree);
68     }
69 
70 }

结果显示  // 注意全局变量和局部变量显示问题

 

posted on 2017-03-23 10:43  上后谈爱情  阅读(210)  评论(0编辑  收藏  举报