"101-symmetric tree (symmetric trees)"
"leetcode-Interview algorithm classic-java Implementation" "All topics Directory Index"
Original Question
Given a binary tree, check whether it is a mirror of the itself (ie, symmetric around its center).
For example, this binary tree is symmetric:
1 2 \ 3 4 4 3
But the following are not:
1 2 2 \ 3 3
Note:
Bonus points if you could solve it both recursively and iteratively.
Main Topic
Given a tree, judge whether it is symmetrical. That is, whether the tree's Zuozi is a mirror image of its right subtree.
Thinking of solving problems
Using recursion to solve, first determine whether the left and right sub-nodes are equal, not equal to return false, equality will be left dial hand node Zuozi and right child results of the right sub-node to compare operations, at the same time the left Dial hand node of the Zuozi and the left sub-node is compared, only two at the same time true, Otherwise, false is returned.
Code Implementation
Tree Node class
publicclass TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; }}
Algorithm implementation class
Public classSolution { PublicBoolean issymmetric (TreeNode root) {if(Root = =NULL) {returntrue; }Else{return issame (root). Left, Root. Right); } }PrivateBoolean Issame (TreeNode Left, TreeNode Right) {if( Left==NULL&& Right==NULL) {returntrue; }if( Left!=NULL&& Right==NULL|| Left==NULL&& Right!=NULL) {returnfalse; }Else{return Left. val = = Right. Val && Issame ( Left. Left, Right. Right) && Issame ( Left. Right, Right. Left); } }}
Evaluation Results
Click on the picture, the mouse does not release, drag a position, release after the new window to view the full picture.
Special Instructions
Welcome reprint, Reprint please indicate the source "http://blog.csdn.net/derrantcm/article/details/47333335"
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
"Leetcode-Interview algorithm classic-java implementation" "101-symmetric Tree (symmetric tree)"