.vip域名的网站排名,学科专业网站建设,网站建设好后怎么更新内容,济南建筑设计公司文章目录 144.二叉树的前序遍历145.二叉树的后序遍历94.二叉树的中序遍历102.二叉树的层序遍历107.二叉树的层次遍历倒序199.二叉树的右视图637.二叉树的层平均值429.N叉树的层序遍历515.在每个树行中找最大值116.填充每个节点的下一个右侧节点指针104.二叉树的最大深度111.二叉… 文章目录 144.二叉树的前序遍历145.二叉树的后序遍历94.二叉树的中序遍历102.二叉树的层序遍历107.二叉树的层次遍历倒序199.二叉树的右视图637.二叉树的层平均值429.N叉树的层序遍历515.在每个树行中找最大值116.填充每个节点的下一个右侧节点指针104.二叉树的最大深度111.二叉树的最小深度 144.二叉树的前序遍历
/*** 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;* }* }*/
class Solution {public ListInteger preorderTraversal(TreeNode root) {ListInteger res new ArrayList();traversal(res,root);return res;}public void traversal(ListInteger res ,TreeNode root){if(root null){return;}res.add(root.val);traversal(res,root.left);traversal(res,root.right);}
}145.二叉树的后序遍历
/*** 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;* }* }*/
class Solution {public ListInteger postorderTraversal(TreeNode root) {ListInteger res new ArrayList();traversal(res,root);return res;}public void traversal(ListInteger list, TreeNode root){if(root null){return;}traversal(list,root.left);traversal(list,root.right);list.add(root.val);}
}94.二叉树的中序遍历
/*** 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;* }* }*/
class Solution {public ListInteger inorderTraversal(TreeNode root) {ListInteger res new ArrayList();traversal(res,root);return res;} public void traversal(ListInteger list,TreeNode root){if(root null){return;}traversal(list,root.left);list.add(root.val);traversal(list,root.right);}
}102.二叉树的层序遍历
/*** 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;* }* }*/
class Solution {public ListListInteger levelOrder(TreeNode root) {ListListInteger res new ArrayList();traversal(res,root,0);return res;}public void traversal(ListListInteger list,TreeNode root, int deep){if(root null){return;}if(list.size() deep1){list.add(new ArrayList());}list.get(deep).add(root.val);traversal(list,root.left,deep1);traversal(list,root.right,deep1);}
}107.二叉树的层次遍历倒序
/*** 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;* }* }*/
class Solution {public ListListInteger levelOrderBottom(TreeNode root) {ListListInteger res new ArrayList();traversal(res,root,0);Collections.reverse(res);return res;}public void traversal(ListListInteger list,TreeNode root,int deep){if(root null){return;}if(list.size() deep1){list.add(new ArrayList());}list.get(deep).add(root.val);traversal(list,root.left,deep1);traversal(list,root.right,deep1);}
}199.二叉树的右视图
/*** 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;* }* }*/
class Solution {public ListInteger rightSideView(TreeNode root) {ListListInteger res new ArrayList();traversal(res,root,0);ListInteger result new ArrayList();for(ListInteger list:res){result.add(list.getLast());}return result;}public void traversal(ListListInteger list,TreeNode root,int deep){if(root null){return;}while(list.size() deep1){list.add(new ArrayList());}list.get(deep).add(root.val);traversal(list,root.left,deep1);traversal(list,root.right,deep1);}
}637.二叉树的层平均值
/*** 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;* }* }*/
class Solution {public ListDouble averageOfLevels(TreeNode root) {ListListInteger rest new ArrayList();ListDouble res new ArrayList();traversal(rest,root,0);for(ListInteger l :rest){res.add(l.stream().mapToInt(Integer::intValue).average().orElse(0));}return res;}public void traversal(ListListInteger list,TreeNode root,int deep){if(root null){return;}if(list.size() deep1){list.add(new ArrayList());}list.get(deep).add(root.val);traversal(list,root.left,deep1);traversal(list,root.right,deep1);}
}429.N叉树的层序遍历 /*
// Definition for a Node.
class Node {public int val;public ListNode children;public Node() {}public Node(int _val) {val _val;}public Node(int _val, ListNode _children) {val _val;children _children;}
};
*/
class Solution {public ListListInteger levelOrder(Node root) {ListListInteger res new ArrayList();traversal(res,root,0);return res;}public void traversal(ListListInteger list,Node root,int deep){if(root null){return;}if(list.size() deep1){list.add(new ArrayList());}list.get(deep).add(root.val);for(Node node : root.children){traversal(list,node,deep1);}}
}515.在每个树行中找最大值
/*** 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;* }* }*/
class Solution {public ListInteger largestValues(TreeNode root) {ListListInteger res new ArrayList();traversal(res,root,0);ListInteger result new ArrayList();for(ListInteger l : res){result.add(l.stream().max(Integer::compare).orElse(0));}return result;}public void traversal(ListListInteger list, TreeNode root, int deep){if(root null){return;}if(list.size() deep1){list.add(new ArrayList());}list.get(deep).add(root.val);traversal(list,root.left,deep1);traversal(list,root.right,deep1);}
}116.填充每个节点的下一个右侧节点指针
/*
// Definition for a Node.
class Node {public int val;public Node left;public Node right;public Node next;public Node() {}public Node(int _val) {val _val;}public Node(int _val, Node _left, Node _right, Node _next) {val _val;left _left;right _right;next _next;}
};
*/class Solution {public Node connect(Node root) {if(root null){return root;}QueueNode nodeq new LinkedList();nodeq.add(root);while(!nodeq.isEmpty()){int size nodeq.size();for(int i 0; i size; i){Node node nodeq.poll();if(i size - 1){node.next nodeq.peek();}if(node.left ! null){nodeq.add(node.left);}if(node.right ! null){nodeq.add(node.right);}}}return root;}}104.二叉树的最大深度
/*** 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;* }* }*/
class Solution {public int maxDepth(TreeNode root) {if(root null){return 0;}int leftH maxDepth(root.left);int rightH maxDepth(root.right);return Math.max(leftH,rightH) 1;}
}111.二叉树的最小深度
/*** 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;* }* }*/
class Solution {public int minDepth(TreeNode root) {if(root null){return 0;}int leftH minDepth(root.left);int rightH minDepth(root.right);if(leftH 0 || rightH 0){return Math.max(leftH,rightH) 1;}return Math.min(leftH,rightH) 1;}
}