如何做网站怎么赚钱吗,温州做网站软件,wordpress写文章排版,图标设计免费 logo前/中/后序遍历
递归方式
参考文章
题目
思路#xff1a;其实递归方式的前中后序遍历的方式都差不多#xff0c;区别是在父节点的遍历时间。
前序代码
class Solution {public ListInteger preorderTraversal(TreeNode root) {ListInteger result new…
前/中/后序遍历
递归方式
参考文章
题目
思路其实递归方式的前中后序遍历的方式都差不多区别是在父节点的遍历时间。
前序代码
class Solution {public ListInteger preorderTraversal(TreeNode root) {ListInteger result new ArrayListInteger();preorder(root, result);return result;}public void preorder(TreeNode root, ListInteger result) {if (root null) {return;}result.add(root.val);preorder(root.left, result);preorder(root.right, result);}
}
题目
中序代码
class Solution {public ListInteger inorderTraversal(TreeNode root) {ListInteger result new ArrayList();inorder(root, result);return result;}public void inorder(TreeNode root, ListInteger result) {if (root null) {return;}inorder(root.left, result);result.add(root.val);inorder(root.right, result);}}
题目
后序代码 public ListInteger postorderTraversal(TreeNode root) {ListInteger res new ArrayList();postorder(root, res);return res;}void postorder(TreeNode root, ListInteger list) {if (root null) {return;}postorder(root.left, list);postorder(root.right, list);list.add(root.val); // 注意这一句}
层序遍历
题目
参考文章
思路层序遍历就是把二叉树中一层一层的存储起来这里我们用队列的方式来暂时存储每一层的元素主要用于while循环时size大小的固定然后添加到一个一维数组中最后以二维数组的方式就可以得到每一层的数据了
代码
class Solution {public ListListInteger resList new ArrayListListInteger();public ListListInteger levelOrder(TreeNode root) {checkFun02(root);return resList;}public void checkFun02(TreeNode node) {if(nodenull){return;}QueueTreeNode que new LinkedListTreeNode();que.offer(node);while(!que.isEmpty()){ListInteger itemList new ArrayListInteger();int size que.size();while(size0){TreeNode tempNodeque.poll();itemList.add(tempNode.val);if(tempNode.left!null){que.offer(tempNode.left);}if(tempNode.right!null){que.offer(tempNode.right);}size--;}resList.add(itemList); }}
}