首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java-15.输入一颗二元查寻树,将该树转换为它的镜像, 即在转换后的二元查找树中,左子树的结点都大于右子树的结点。 用递归和循环

2012-08-28 
java-15.输入一颗二元查找树,将该树转换为它的镜像, 即在转换后的二元查找树中,左子树的结点都大于右子树

java-15.输入一颗二元查找树,将该树转换为它的镜像, 即在转换后的二元查找树中,左子树的结点都大于右子树的结点。 用递归和循环

//use recursionpublic static void mirrorHelp1(Node node){if(node==null)return;swapChild(node);mirrorHelp1(node.getLeft());mirrorHelp1(node.getRight());}//use no recursion but stackpublic static void mirrorHelp2(Node node){if(node==null)return;Stack<Node> stack=new Stack<Node>();stack.add(node);while(!stack.isEmpty()){node=stack.pop();swapChild(node);if(node.getLeft()!=null){stack.push(node.getLeft());}if(node.getRight()!=null){stack.push(node.getRight());}}}public static void swapChild(Node node){/*not like c/c++,you cannot do this:Node temp=left;left=right;right=temp;*/Node left=node.getLeft();node.setLeft(node.getRight());node.setRight(left);}

热点排行