Leetcode 4.28 Tree Easy

1. 101. Symmetric Tree

  用递归。

 1 class Solution {
 2     public boolean isSymmetric(TreeNode root) {
 3         if( root == null)
 4             return true;
 5         return symmetric(root.left, root.right);
 6     }
 7     
 8     public boolean symmetric(TreeNode p, TreeNode q){
 9         if(p == null || q == null)
10             return p == q? true:false;
11         return p.val == q.val && symmetric(p.left, q.right) && symmetric(p.right, q.left);
12     }
13 }

 

2. 107. Binary Tree Level Order Traversal II

    list表示当前层的所有节点,nextList表示下一层的所有节点。

 1 class Solution {
 2     public List<List<Integer>> levelOrderBottom(TreeNode root) {
 3         List<List<Integer>> res = new ArrayList();
 4         List<TreeNode> list = new ArrayList();
 5         if( root == null)
 6             return res;
 7         list.add(root);
 8         
 9         while(!list.isEmpty()){
10             List<Integer> curList = new ArrayList();
11             List<TreeNode> nextList = new ArrayList();
12             for(TreeNode cur: list){   //循环当前层
13                 curList.add(cur.val);
14                 if(cur.left != null) nextList.add(cur.left);
15                 if(cur.right != null) nextList.add(cur.right);
16             }
17             list = nextList;
18             res.add(0, curList);
19         }
20         return res;
21     }
22 }

 

posted @ 2019-04-28 18:53  阿飞哦  阅读(106)  评论(0编辑  收藏  举报