java對(duì)稱二叉樹的判斷

1. 題目描述

創(chuàng)新互聯(lián)是一家朝氣蓬勃的網(wǎng)站建設(shè)公司。公司專注于為企業(yè)提供信息化建設(shè)解決方案。從事網(wǎng)站開發(fā),網(wǎng)站制作,網(wǎng)站設(shè)計(jì),網(wǎng)站模板,微信公眾號(hào)開發(fā),軟件開發(fā),微信小程序開發(fā),10多年建站對(duì)成都工商代辦等多個(gè)方面,擁有豐富的網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn)。

請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù),用來判斷一顆二叉樹是不是對(duì)稱的。注意,如果一個(gè)二叉樹同此二叉樹的鏡像是同樣的,定義其為對(duì)稱的。

2. 解題思路

可以按照類似層次遍歷,來判斷是否是堆成二叉樹:
首先根節(jié)點(diǎn)以及其左右子樹,左子樹的左子樹和右子樹的右子樹相同,以及左子樹的右子樹和右子樹的左子樹相同即可,然后采用遞歸一直判斷下去。

3. 代碼

public class isSymmetrical {

 public static void main(String[] args) {
 // 新建一棵二叉搜索樹
 TreeNode root=new TreeNode(10);
 TreeNode n1=new TreeNode(5);
 TreeNode n2=new TreeNode(5);
 TreeNode n3=new TreeNode(4);
 TreeNode n4=new TreeNode(7);
 TreeNode n5=new TreeNode(7);
 TreeNode n6=new TreeNode(4);
 //TreeNode n7=new TreeNode(19);
 root.left=n1;
 root.right=n2;
 n1.left=n3;
 n1.right=n4;
 n2.left=n5;
 n2.right=n6;
 //n6.right=n7;
 
 System.out.println("后序遍歷:");
 postOrderTraverse(root);
 
 boolean temp=symmetrical(root);
 System.out.println("\n"+"結(jié)果:"+temp);
 }
 
 
 static boolean symmetrical(TreeNode pRoot)
  {
 if(pRoot == null){
      return true;
    }
    return comRoot(pRoot.left, pRoot.right);
  }
 
 
  static boolean comRoot(TreeNode left, TreeNode right) {
    if(left == null) 
     return right==null;
    if(right == null) 
     return false;
    if(left.val != right.val) 
     return false;
    return comRoot(left.right, right.left) && comRoot(left.left, right.right);
  }
  
  // 后序遍歷
  public static void postOrderTraverse(TreeNode node) { 
    if (node == null) 
      return; 
    postOrderTraverse(node.left); 
    postOrderTraverse(node.right); 
    System.out.print(node.val + " "); 
  }
}

運(yùn)行:

后序遍歷:
4 7 5 7 4 5 10
結(jié)果:true

到此這篇關(guān)于java 對(duì)稱二叉樹的判斷的文章就介紹到這了,更多相關(guān)java 對(duì)稱二叉樹內(nèi)容請(qǐng)搜索創(chuàng)新互聯(lián)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持創(chuàng)新互聯(lián)!

名稱欄目:java對(duì)稱二叉樹的判斷
URL標(biāo)題:http://muchs.cn/article38/pgohpp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化品牌網(wǎng)站設(shè)計(jì)、品牌網(wǎng)站建設(shè)手機(jī)網(wǎng)站建設(shè)、軟件開發(fā)、商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)