reeNode tempNode = node;? //遍历指针 ? ? ? ? while(tempNode != null || !nodeStack.isEmpty()){ ? ? ? ? ? ? if(tempNode != null){ ? ? ? ? ? ? ? ? nodeStack.push(tempNode); ? ? ? ? ? ? ? ? tempNode = tempNode.getLchild(); ? ? ? ? ? ? }else{ ? ? ? ? ? ? ? ? tempNode = nodeStack.pop(); ? ? ? ? ? ? ? ? System.out.print(tempNode.getData() + " "); ? ? ? ? ? ? ? ? tempNode = tempNode.getRchild(); ? ? ? ? ? ? } ? ? ? ? } ? ? }
3. 得到二叉查找树的最大值和最小值:
//查找最大值:不断地寻找右子节点 ? ? public TreeNode getMaxData(TreeNode node){ ? ? ? ? TreeNode tempNode = node; ? ? ? ? while(tempNode.getRchild()!=null){ ? ? ? ? ? ? tempNode = tempNode.getRchild(); ? ? ? ? } ? ? ? ? return tempNode; ? ? } ? ? ? ? //查找最小值:不断地寻找左子节点 ? ? public TreeNode getMinData(TreeNode node){ ? ? ? ? TreeNode tempNode = node; ? ? ? ? while(tempNode.getLchild() != null){ ? ? ? ? ? ? tempNode = tempNode.getLchild(); ? ? ? ? } ? ? ? ? return tempNode; ? ? }
|