标签:LinkedList int tree offer34 add new List LeetCode 刷题
本人新手为了面试互联网公司,将刷题做一个记录以及总结,方便之后学习!!
第30道问题 剑指offer 34为一道中等题。
题目:
力扣https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-iii-lcof/submissions/
1.自己分析
这个题思想仍跟上一题一致,不同的是这个题目中采用之字型打印,也就意味着之前的打印方式改变,之字形可以看成没过2个就反向打印一次,利用mod2就可以分辨出来。
class Solution {
public List<List<Integer>> levelOrder(TreeNode root) {
if(root == null) return new LinkedList<>();
List<List<Integer>> list = new LinkedList<List<Integer>>();
LinkedList<TreeNode> tree = new LinkedList<>();//前面的是linkedlist
tree.add(root);
int count=0;
while(!tree.isEmpty()){
List<Integer> list1 = new LinkedList<>();
for(int i = tree.size();i>0;i--){
//for(int i = 0;i<tree.size();i++){
TreeNode node = tree.pop();
list1.add(node.val);
if(node.left!= null) tree.add(node.left);
if(node.right!=null) tree.add(node.right);
}
//这里面对list1进行处理
if(count % 2==0){
list.add(list1);
count++;
}else{//反向处理
List<Integer> list2 = new LinkedList<>();
for(int i=list1.size()-1;i>=0;i--){
list2.add(list1.get(i));
}
list.add(list2);
count++;
}
}
return list;
}
}
结果:
总结:
要使用pop()的方法,LinkedList<TreeNode> 可以但是List<TreeNode>就不可以,需要注意。
标签:LinkedList,int,tree,offer34,add,new,List,LeetCode,刷题 来源: https://blog.csdn.net/dinosaur_baby/article/details/120430616
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。