1. 程式人生 > >leetcode101. Symmetric Tree判斷一棵樹是否是映象二叉樹

leetcode101. Symmetric Tree判斷一棵樹是否是映象二叉樹

思路:轉化為求兩個二叉樹是否是映象二叉樹

class Solution {
    //判斷一顆二叉樹是否是映象的
    public boolean isSymmetric(TreeNode root) {
        if(root==null){
        	return true;
        }
        return isSymmetric(root.left, root.right);
    }
    //以root1為根的二叉樹與以root2為根的二叉樹是否是映象二叉樹。
    private boolean isSymmetric(TreeNode root1,TreeNode root2){
    	if(root1==null && root2==null){
    		return true;
    	}
    	if(root1==null || root2==null || root1.val!=root2.val){
    		return false;
    	}
    	return isSymmetric(root1.left, root2.right) && isSymmetric(root1.right, root2.left);
    }
}

相關推薦

leetcode101. Symmetric Tree判斷是否是映象

思路:轉化為求兩個二叉樹是否是映象二叉樹class Solution { //判斷一顆二叉樹是否是映象的 public boolean isSymmetric(TreeNode root) { if(root==null){

【LeetCode】Symmetric Tree 判斷是否是映象

<span style="font-size:18px;"><span style="font-size:18px;">/**LeetCode Symmetric Tree 對稱的樹 * 思路:判斷一棵樹是否對稱,1.有左子樹就要有右子樹 *

如何判斷是平衡

首先,想一下平衡二叉樹的概念。 平衡二叉樹(AVL樹)是滿足下面條件的二叉樹:要麼是一棵空樹,要麼左右子樹都是AVL樹,並且左右子樹的深度之差的絕對值不大於1。由此可知,要判斷一棵樹是不是AVL樹,只要判斷它的左右子樹的深度之差。問題落到了如何求一棵樹的深度上去了。下面使用

【leetcode】110 判斷是否平衡

在不熟悉遞迴的情況下,用了兩次遞迴來完成該題,做一紀念{{//解決過程兩次用到遞迴,完美、快速地解決了這道題;首先一個求高度的函式這個函式要用到遞迴;之後在主函式裡面,比較兩個子樹的高度差,如果二者平衡,也要繼續分別遞迴二者;public: bool isBalance

(Python)# 請實現一個函式,用來判斷是不是對稱的。注意,如果一個同此映象是同樣的,定義其為對稱的.

# 請實現一個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果一個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的. class TreeNode: def __init__(self, x): self.val = x self.lef

144. Binary Tree Preorder Traversal 先序遍歷

reorder oot rec eno right table self. 先序遍歷 self Given a binary tree, return the preorder traversal of its nodes‘ values. For example: Giv

六:中和為某值的路徑

/** * 題目:二叉樹中和為某一值的路徑 * 描述:   輸入一顆二叉樹和一個整數,打印出二叉樹中結點值的和為輸入整數的所有路徑。 *   路徑定義為從樹的根結點開始往下一直到葉結點所經過的結點形成一條路徑 * 方案: 

【圖解資料結構】 組動畫徹底理解三種遍歷

二叉樹的遍歷是指從根結點出發,按照某種次序依次訪問二叉樹中所有結點,使得每個結點被訪問一次且僅被訪問一次。 在二叉樹的遍歷中存在三種較為常用的遍歷方式:前序遍歷、中序遍歷、後序遍歷。接下來我將嘗試著用三組動畫向讀者詳細的介紹這三種遍歷方式的邏輯思路,希望讓讀者看到任何的二叉樹都能在腦海中快速的勾勒出動畫。

[] 6.49 判斷完全、滿 - C語言

題目來源:嚴蔚敏《資料結構》C語言版本習題冊 6.49 // 6.49 編寫演算法判別給定二叉樹是否為完全二叉樹 Status BiTreeIsComplete(BiTree T) { // 思路:完全二叉樹的層次遍歷應該是沒有NULL的 // 實現:把所有的結點都

------平衡 搜素 完全判斷

平衡二叉樹:判斷條件1)左樹是否平衡2)右樹是否平衡 3)高度 左樹右樹相差高度不大於1               public static boolean isBalance(Node head){ if

資料結構實驗-C語言-二叉樹的建立,前、中、後序遍歷的遞迴演算法和非遞迴演算法,求葉子結點數目,求二叉樹深度,判斷二叉樹是否相似,求二叉樹左右子互換,二叉樹層序遍歷的演算法,判斷二叉樹是否是完全二叉樹

1.實驗目的 熟練掌握二叉樹的二叉連結串列儲存結構的C語言實現。掌握二叉樹的基本操作-前序、中序、後序遍歷二叉樹的三種方法。瞭解非遞迴遍歷過程中“棧”的作用和狀態,而且能靈活運用遍歷演算法實現二叉樹的其它操作。 2.實驗內容 (1)二叉樹的二叉連結串列的建立 (2)二叉樹的前、中、後

、平衡、B- tree、B+ tree 基本概念

1 二叉樹          二叉樹binary tree是指每個節點最多含有兩個子樹的樹結構。 特點:         1.所有節點最多擁有兩個子節點,即度不大於2         2.左子樹的鍵值小於根的鍵值,右子樹的鍵值大於根的鍵值。因為二叉樹只是定義了簡單的結

,完全,滿排序,平衡,紅黑,B數,B-,B+,B*

二叉樹 二叉樹:二叉樹是每個節點最多有兩個子樹的樹結構; 是n(n>=0)個結點的有限集合,它或者是空樹(n=0),或者是由一個根結點及兩顆互不相交的、分別稱為左子樹和右子樹的二叉樹所組成。 完全二叉樹 完全二叉樹:除最後一層外,每一層上的結點數均達到最

程式碼,一定要讓你真正徹底明白紅黑(平衡

一步一圖一程式碼,一定要讓你真正徹底明白紅黑樹 作者:July   二零一一年一月九日 ----------------------------- 本文參考: I、  The Art of Computer Programming Volume I II、 I

[LeetCode] Encode N-ary Tree to Binary Tree 將N編碼為

Design an algorithm to encode an N-ary tree into a binary tree and decode the binary tree to get the original N-ary tree. An N-ary tree is a rooted tree

【C++】滿與完全的區別及判斷

#include<iostream> #include<queue> using namespace std; struct BinaryTreeNode { char _data; BinaryTreeNode*_left; BinaryTreeNode*_right; Bi

之完全判斷

分析:可以按照下面條件進行判斷  1. 採用按層遍歷的方式,依次遍歷所有結點  2. 如果當前結點有右孩子沒有左孩子,直接返回false  3. 如果當前結點有左孩子沒有右孩子,那之後的結點必須為葉子結點,否則返回false  4. 如果之前步

Binary Tree Inorder Traversal:中序遍歷,不使用深度優先遍歷

Given a binary tree, return the inorder traversal of its nodes' values. For example: Given binar

Binary Tree Postorder Traversal 非遞迴實現後序遍歷

Given a binary tree, return the postorder traversal of its nodes' values. For example: Given binary tree {1,#,2,3}, 1 \ 2 / 3 return 

1110 Complete Binary Tree (25 分)【完全(dfs)】

Given a tree, you are supposed to tell if it is a complete binary tree. Input Specification: Each input file contains one test case. For each case