对称的二叉树

This commit is contained in:
Nezuko-Wen 2020-12-05 17:36:05 +08:00
parent e93ee15749
commit c51ba17dc0
1 changed files with 34 additions and 0 deletions

34
src/offer/Question28.java Normal file
View File

@ -0,0 +1,34 @@
package offer;
import leecode.tree.TreeNode;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Stack;
/**
* 对称的二叉树
*/
public class Question28 {
public boolean isSymmetry(TreeNode node) {
TreeNode lHead = new TreeNode(0);
lHead.left = node;
TreeNode rHead = new TreeNode(0);
rHead.left = node;
return dfs(lHead.left, rHead.left);
}
private boolean dfs(TreeNode lHead, TreeNode rHead) {
if (lHead == null && rHead == null) {
return true;
}
if (lHead == null || rHead == null) {
return false;
}
if (!Objects.equals(lHead.val, rHead.val)) {
return false;
}
return dfs(lHead.left, rHead.right) && dfs(lHead.right, rHead.left);
}
}