給定乙個二叉樹,檢查它是否是映象對稱的。
例如,二叉樹[1,2,2,3,4,4,3]
是對稱的。
但是下面這個[1,2,2,null,3,null,3]
則不是映象對稱的:
本題要求判斷樹是否為對稱二叉樹,主要思想就是利用遞迴實現,最後返回結果。
新建乙個函式compare(root, root)
,將根結點兩次傳遞進去,判斷:
兩棵樹的根節點的val
值是否相等;
以第一棵樹的左節點為根結點的子樹是否與以第二棵樹的右節點為根結點的子樹完全相等;
以第一棵樹的右節點為根結點的子樹是否與以第二棵樹的左節點為根結點的子樹完全相等。
對稱二叉樹如下圖所示:
具體思路流程可參見偽**。
/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solution
//如果兩個節點都有值,先判斷值是否相等,再繼續判斷。
else
if(p !=
null
&& q !=
null
)//如果乙個節點為null,另乙個不是null,則返回false
else
}//傳遞根結點為引數,若為對稱二叉樹,則左節點的值 == 右節點的值
題目筆記 UVA101 STL vector
stl vector include include include using namespace std const int maxx 30 int n string s1,s2 vector plie maxx void find bl int a,int p,int h 這裡用的是引用不太明...
leetcode 排序題目
merge k sorted lists insertion sort list sort list first missing positive sort colors 147.insertion sort list sort a linked list using insertion sort....
leetCode題目解析
給出兩個非空的鍊錶用來表示兩個非負的整數。其中,它們各自的位數是按照逆序的方式儲存的,並且它們的每個節點只能儲存一位數字。如果,我們將這兩個數相加起來,則會返回乙個新的鍊錶來表示它們的和。您可以假設除了數字 0 之外,這兩個數都不會以 0 開頭。示例 輸入 2 4 3 5 6 4 輸出 7 0 8原...