在Java中,一个二叉树类可以这样定义:publicclassTreeNode{intdata;树节点离开;树节点对;publicTreeNode(intdata){this.data=data;}下面介绍一些操作二叉树的基本方法:文章目录1.构建二叉树2.深度优先遍历3.层序遍历4.如何判断两棵二叉树是否相同5.如何判断一棵二叉树是否相同二叉树是对称的1.构建二叉树/***构建二叉树*@paraminputList输入序列*@returnnode返回根节点*/publicstaticTreeNodecreatBinaryTree(LinkedListinputList){TreeNodenode=null;if(inputList==null||inputList.isEmpty()){返回null;}整数数据=inputList.removeFirst();//移除并返回LinkedList中的第一个元素if(data!=null){node=newTreeNode(data);node.left=creatBinaryTree(inputList);node.right=creatBinaryTree(inputList);}返回节点;}主要功能:publicstaticvoidmain(String[]args){LinkedListinputList=newLinkedList(Arrays.asList(newInteger[]{3,2,9,null,null,10,null,空,8,空,4}));TreeNodetreeNode=creatBinaryTree(inputList);}2。深度优先遍历深度优先遍历点前序遍历、中序遍历、后序遍历主要采用递归的思想/***前序遍历*@paramnode二叉树根节点*/publicstaticvoidpreOrderTraveral(TreeNodenode){if(node==null){return;}System.out.println(node.data);preOrderTraveral(node.left);preOrderTraveral(node.right);}/***中序遍历*@paramnode二叉树根节点*/publicstaticvoidinOrderTraveral(TreeNodenode){if(node==null){return;}inOrderTraveral(node.left);System.out.println(node.data);inOrderTraveral(node.right);}/***后序遍历*@paramnode二叉树根节点*/publicstaticvoidpostOrderTraveral(TreeNodenode){if(node==null){return;}postOrderTraveral(node.left);postOrderTraveral(node.right);System.out.println(node.data);}3。层序遍历/**@作者结构化思维wz二叉树层序遍历*/publicclassLevelOrder{publicstaticQueuelevelOrderTraversal(TreeNoderoot){Queuequeue=newLinkedList();queue.offer(根);while(!queue.isEmpty()){TreeNodenode=queue.poll();System.out.println(node.data);如果(node.left!=null){queue.offer(node.left);}if(node.right!=null){queue.offer(node.right)}}返回队列;}}4.如何判断两棵二叉树是否相同给定两棵二叉树的根节点p和q,写一个函数判断两棵树是否相同如果两棵树结构相同,且节点有相同的值,它们被认为是相同的。示例1:输入:p=[1,2,3],q=[1,2,3]输出:trueclassSolution{publicbooleanisSameTree(TreeNodep,TreeNodeq){if(p==null&&q==null){returntrue;}//两者为空必须相同如果(p.val!=q.val){返回假;}返回isSameTree(p.left,q.left)&&isSameTree(p.right,q.right);}}5。如何判断一棵二叉树是否对称给定一棵二叉树,判断它是否镜像对称。例如,二叉树[1,2,2,3,4,4,3]是对称的。1/\22/\/\343classSolution{publicbooleanisSymmetric(TreeNoderoot){returncheck(root.left,root.right);}publicbooleancheck(TreeNodep,TreeNodeq){if(p==null&&q==null){returntrue;}if(p==null||q==null){returnfalse;}returnp.val==q.val&&check(p.left,q.right)&&check(p.right,q.left);}}