国内做网站需要做icp备案吗,商务网站底部设计,黄石做网站的公司,网站建设 微盘下载一、LeetCode 102 二叉树的层序遍历
题目链接#xff1a;
102.二叉树的层序遍历https://leetcode.cn/problems/binary-tree-level-order-traversal/ 思路#xff1a;利用队列的先进先出特性#xff0c;在处理本层节点的同时将下层节点入队#xff0c;每次处理一层的节点
102.二叉树的层序遍历https://leetcode.cn/problems/binary-tree-level-order-traversal/ 思路利用队列的先进先出特性在处理本层节点的同时将下层节点入队每次处理一层的节点即可实现层序遍历。 class Solution {public ListListInteger levelOrder(TreeNode root) {QueueTreeNode queue new LinkedList();ListListInteger ans new ArrayList();if(root null){return ans;}queue.offer(root);while(!queue.isEmpty()){//本层节点数int size queue.size();ListInteger list new ArrayList();//记录本层节点 并将下层节点入队for(int i 0; i size; i){TreeNode temp queue.poll();list.add(temp.val);if(temp.left ! null){queue.offer(temp.left);}if(temp.right ! null){queue.offer(temp.right);}}ans.add(new ArrayList(list));}return ans;}
}
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val val;* this.left left;* this.right right;* }* }*/ 二、LeetCode 226 翻转二叉树
题目链接
226.翻转二叉树https://leetcode.cn/problems/invert-binary-tree/ 思路利用二叉树递归实现前序遍历的思想在访问每个节点时进行交换其左右子树的操作 class Solution {public TreeNode invertTree(TreeNode root) {if(root null){return root;}//翻转左右子树 中TreeNode temp root.left;root.left root.right;root.right temp;//前序递归遍历 左、右invertTree(root.left);invertTree(root.right);return root;}
}
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val val;* this.left left;* this.right right;* }* }*/ 三、LeetCode 101 对称二叉树
题目链接
101.对称二叉树https://leetcode.cn/problems/symmetric-tree/ 思路利用后序遍历思想分别判断外层和里层节点的轴对称情况左子树左右中、右子树右左中并对各种空节点情况进行处理从而判断整棵树的对称情况。 class Solution {public boolean isSymmetric(TreeNode root) {return judge(root.left,root.right);}public boolean judge(TreeNode left, TreeNode right){//处理空节点及镜像节点值不相等的情况if(left null right null){return true;}else if(left null right ! null){return false;}else if(left ! null right null){return false;}else if(left.val ! right.val){return false;}//分别判断外层和里层的对称情况boolean out_flag judge(left.left, right.right);boolean in_flag judge(left.right, right.left);//只能采用后序遍历因为需要先判断外层和里层的轴对称情况return out_flag in_flag;}
}
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val val;* this.left left;* this.right right;* }* }*/
四、今日小结 今天的二叉树题目只掌握了递归解法层序遍历相关题目还未刷需要找时间补上ovo