145.二叉树的后序遍历
依旧不会用栈。。。
class Solution {
public List
postorderTraversal(TreeNode root) { Stack
stack=new Stack<>(); List
ans=new ArrayList<>(); TreeNode cur=new TreeNode();
if(root==null)
return ans;
cur=root;
stack.push(root);
while(stack.isEmpty()==false){
cur=stack.pop();
ans.add(cur.val);
if(cur.left!=null)
stack.push(cur.left);
if(cur.right!=null)
stack.push(cur.right);
}
Collections.reverse(ans);
return ans;
}
}
102.二叉树的层序遍历
不会不会不会不会不会。可以用队列实现。
class Solution {
public List> levelOrder(TreeNode root) {
Queuequeue=new LinkedList<>();
List> res=new ArrayList<>();
if(root==null)
return res;
TreeNode cur=new TreeNode();
cur=root;
queue.offer(cur);
while(queue.isEmpty()==false){
Listlist=new ArrayList<>();
int len=queue.size();
while(len>0){
TreeNode node=new TreeNode();
node=queue.poll();
list.add(node.val);
if(node.left!=null)
queue.offer(node.left);
if(node.right!=null)
queue.offer(node.right);
len--;
}
res.add(list);
}
return res;}
}