通行证
- 积分
- 601
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2016-1-24
- 最后登录
- 1970-1-1
|
第一题
- public class Solution {
- public LinkedList<Integer> s(TreeNode root) {
- LinkedList<Integer> ret = new LinkedList<>();
- if (root == null) {
- return ret;
- }
- Deque<TreeNode> queue = new ArrayDeque<>();
- queue.offer(root);
- ret.add(root.val);
- while (!queue.isEmpty()) {
- TreeNode tn = queue.poll();
- if (tn.left != null) {
- queue.offer(tn.left);
- ret.add(tn.left.val);
- } else {
- ret.add(null);
- }
- if (tn.right != null) {
- queue.offer(tn.right);
- ret.add(tn.right.val);
- } else {
- ret.add(null);
- }
- }
- return ret;
- }
- public TreeNode d(LinkedList<Integer> list) {
- if (list.isEmpty()) {
- return null;
- }
- Iterator<Integer> it = list.iterator();
- TreeNode ret = new TreeNode(it.next());
- Deque<TreeNode> queue = new ArrayDeque<>();
- queue.offer(ret);
- while (!queue.isEmpty()) {
- TreeNode tn = queue.poll();
- Integer left = it.next();
- Integer right = it.next();
- if (left != null) {
- tn.left = new TreeNode(left);
- queue.offer(tn.left);
- }
- if (right != null) {
- tn.right = new TreeNode(right);
- queue.offer(tn.right);
- }
- }
- return ret;
- }
- public static void main(String[] args) {
- TreeNode tn1 = new TreeNode(1);
- TreeNode tn2 = new TreeNode(2);
- TreeNode tn3 = new TreeNode(3);
- TreeNode tn4 = new TreeNode(4);
- TreeNode tn5 = new TreeNode(5);
- TreeNode tn6 = new TreeNode(6);
- TreeNode tn7 = new TreeNode(7);
- TreeNode tn8 = new TreeNode(8);
- tn1.left = tn2;
- tn1.right = tn3;
- tn2.left = tn4;
- tn3.left = tn5;
- tn5.left = tn6;
- tn5.right = tn7;
- tn6.left = tn8;
- Solution ss = new Solution();
- TreeNode r = ss.d(ss.s(tn1));
- System.out.println(ss.sameTree(tn1, r));
- TreeNode r2 = ss.d(ss.s(null));
- System.out.println(ss.sameTree(null, r2));
- return;
- }
- private boolean sameTree(TreeNode r1, TreeNode r2) {
- if (r1 == null && r2 == null)
- return true;
- if (r1 != null && r2 != null && r1.val == r2.val)
- return sameTree(r1.left, r2.left) && sameTree(r1.right, r2.right);
- return false;
- }
- }
复制代码 |
|