LeetCode 101 Symmetric Tree
来源:互联网 发布:mac连接usb鼠标 编辑:程序博客网 时间:2024/06/08 10:09
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).
For example, this binary tree is symmetric:
1 / \ 2 2 / \ / \3 4 4 3
But the following is not:
1 / \ 2 2 \ \ 3 3
Note:
Bonus points if you could solve it both recursively and iteratively.
confused what "{1,#,2,3}"
means? > read more on how binary tree is serialized on OJ.
OJ's Binary Tree Serialization:
The serialization of a binary tree follows a level order traversal, where '#' signifies a path terminator where no node exists below.
Here's an example:
1 / \ 2 3 / 4 \ 5The above binary tree is serialized as
"{1,2,3,#,#,4,#,#,5}"
.public boolean isSymmetric(TreeNode root) {if (root == null) return true;return mirror(root.left, root.right);}public boolean mirror(TreeNode p, TreeNode q) {if (p == null && q == null) return true;if (p == null || q == null) return false;return p.val == q.val && mirror(p.left, q.right) && mirror(p.right, q.left);}
2.使用stack,stack好一点是,如果元素为null,也照样可以push、pop。
代码如下:
public boolean isSymmetric2(TreeNode root) {Stack<TreeNode> nodeStack = new Stack<TreeNode>();if (root == null) return true;nodeStack.push(root.left);nodeStack.push(root.right);while (!nodeStack.isEmpty()) {TreeNode q = nodeStack.pop();TreeNode p = nodeStack.pop();if (p == null && q == null) continue;if (p == null || q == null) return false;if (p.val != q.val) return false;nodeStack.push(p.left);nodeStack.push(q.right);nodeStack.push(p.right);nodeStack.push(q.left);}return true;}
1 0
- LeetCode(101)Symmetric Tree
- LeetCode 101 Symmetric Tree
- LeetCode: Symmetric Tree [101]
- [leetcode 101] Symmetric Tree
- [LeetCode 101]Symmetric Tree
- leetcode-101 Symmetric Tree
- leetcode || 101、Symmetric Tree
- Leetcode[101]-Symmetric Tree
- leetcode[101]:Symmetric Tree
- LeetCode 101 Symmetric Tree
- leetcode 101 Symmetric Tree
- Leetcode# 101 Symmetric Tree
- leetcode 101: Symmetric Tree
- leetCode #101 Symmetric Tree
- leetcode-101-Symmetric Tree
- leetcode 101 Symmetric Tree
- LeetCode 101: Symmetric Tree
- 【LEETCODE】101-Symmetric Tree
- 不共线三点确定特征平面并求解平面系数
- 安卓-LogUtil工具类
- app启动做了哪些事情(ios oc)
- unity3d 状态存储 PlayerPrefs高级用法
- 用MyEclipse10上传项目到github
- LeetCode 101 Symmetric Tree
- 动画
- g++ 编译和链接
- AndroidStudio常见问题汇总(一)Rendering Problems
- 享元模式
- 导航控制器实例——锤子标签
- C++实现——任意多边形的面积
- [C++ Error] test1.cpp(29): E2193 LoadDataFromFile(AnsiString,bool)
- IMM输入法概述