遍历查询二叉树结构(1)

来源:互联网 发布:英语音标学习软件 编辑:程序博客网 时间:2024/04/29 02:54

二叉树结构用java表示如下:

package javatest.suanfa.Erchashu;public class TreeNode {int val;TreeNode leftChild;TreeNode rightChild;public TreeNode(int value) {this.val = value;}public int getVal() {return val;}public void setVal(int val) {this.val = val;}public TreeNode getLeftChild() {return leftChild;}public void setLeftChild(TreeNode leftChild) {this.leftChild = leftChild;}public TreeNode getRightChild() {return rightChild;}public void setRightChild(TreeNode rightChild) {this.rightChild = rightChild;}}

遍历二叉树的方法,递归

package javatest.suanfa.Erchashu;public class Erchashulength {public static int leftlength = 0;public static int rightlength = 0;public static int length = 0;public static int dept(TreeNode node){if(node!=null){length = 1;}//如果下面的节点为null,或者左右几点为null,直接返回if((node==null)||(node.getLeftChild()==null&&node.getRightChild()==null)){return  leftlength>rightlength?leftlength:rightlength;//遍历左侧的树结构}else if(node.getLeftChild()!=null&&node.getRightChild()==null){leftlength++;return dept(node.getLeftChild());//遍历右侧的树结构}else if(node.getLeftChild()==null&&node.getRightChild()!=null){rightlength++;return dept(node.getRightChild());//如果2侧都有树}else{ rightlength++; leftlength++; dept(node.getLeftChild()); dept(node.getRightChild());return leftlength>rightlength?leftlength:rightlength;}}public static void main(String[] args) {// TODO Auto-generated method stubTreeNode node = new TreeNode(1);TreeNode node21 = new TreeNode(21);TreeNode node22 = new TreeNode(22);TreeNode node31 = new TreeNode(31);TreeNode node32 = new TreeNode(32);TreeNode node33 = new TreeNode(33);node.setLeftChild(node21);node.setRightChild(node22);node21.setLeftChild(node31);node21.setRightChild(node32);node22.setRightChild(node33);dept(node);System.out.println(length+"----------"+leftlength+"--"+rightlength);System.out.println(length+leftlength);}}




0 0
原创粉丝点击