二叉树简单题|对称、翻转、合并二叉树
2023-12-28 21:40:20
二叉树简单题|对称、翻转、合并二叉树
模板代码
private boolean process(TreeNode p, TreeNode q) {
if (p == null && q == null) {
return ;
} else if (p == null && q != null) {
return ;
} else if (p != null && q == null) {
return ;
} else {
return ;
}
}
101 对称二叉树
/**
* 对称二叉树
*/
public class $101 {
public boolean isSymmetric(TreeNode root) {
if (root == null) {
return false;
}
return process(root.left, root.right);
}
private boolean process(TreeNode p, TreeNode q) {
if (p == null && q == null) {
return true;
} else if (p == null && q != null) {
return false;
} else if (p != null && q == null) {
return false;
} else {
return p.val == q.val && process(p.left, q.right) && process(p.right, q.left);
}
}
}
226 翻转二叉树
import java.util.LinkedList;
import java.util.List;
/**
* 翻转二叉树
*/
public class $226 {
public TreeNode invertTree(TreeNode root) {
if (root == null) {
return null;
}
return process(root);
}
private TreeNode process(TreeNode root) {
if (root.left == null && root.right == null) {
return root;
} else if (root.left == null && root.right != null) {
TreeNode rigRes = process(root.right);
root.left = rigRes;
root.right = null;
return root;
} else if (root.left != null && root.right == null) {
TreeNode lefRes = process(root.left);
root.right = lefRes;
root.left = null;
return root;
} else {
TreeNode lefRes = process(root.left);
TreeNode rigRes = process(root.right);
root.left = rigRes;
root.right = lefRes;
return root;
}
}
}
617 合并二叉树
/**
* 合并二叉树
*/
public class $617 {
public TreeNode mergeTrees(TreeNode root1, TreeNode root2) {
return process(root1, root2);
}
private TreeNode process(TreeNode p, TreeNode q) {
if (p == null && q == null) {
return null;
} else if (p == null && q != null) {
return q;
} else if (p != null && q == null) {
return p;
} else {
TreeNode node = new TreeNode(p.val + q.val);
node.left = process(p.left, q.left);
node.right = process(p.right, q.right);
return node;
}
}
}
文章来源:https://blog.csdn.net/weixin_43217281/article/details/135278350
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!