您的位置:首页 > 财经 > 产业 > 软件开发专业难学吗_重庆新闻app下载_流量平台有哪些_百度学术官网

软件开发专业难学吗_重庆新闻app下载_流量平台有哪些_百度学术官网

2024/12/24 8:00:19 来源:https://blog.csdn.net/cccoffer/article/details/142495380  浏览:    关键词:软件开发专业难学吗_重庆新闻app下载_流量平台有哪些_百度学术官网
软件开发专业难学吗_重庆新闻app下载_流量平台有哪些_百度学术官网

前/中/后序遍历

递归方式

参考文章

题目

思路:其实递归方式的前中后序遍历的方式都差不多,区别是在父节点的遍历时间。

前序代码

class Solution {public List<Integer> preorderTraversal(TreeNode root) {List<Integer> result = new ArrayList<Integer>();preorder(root, result);return result;}public void preorder(TreeNode root, List<Integer> result) {if (root == null) {return;}result.add(root.val);preorder(root.left, result);preorder(root.right, result);}
}

题目

中序代码

class Solution {public List<Integer> inorderTraversal(TreeNode root) {List<Integer> result = new ArrayList<>();inorder(root, result);return result;}public void inorder(TreeNode root, List<Integer> result) {if (root == null) {return;}inorder(root.left, result);result.add(root.val);inorder(root.right, result);}}

题目

后序代码

  public List<Integer> postorderTraversal(TreeNode root) {List<Integer> res = new ArrayList<>();postorder(root, res);return res;}void postorder(TreeNode root, List<Integer> list) {if (root == null) {return;}postorder(root.left, list);postorder(root.right, list);list.add(root.val);             // 注意这一句}

层序遍历

题目

参考文章

思路:层序遍历就是把二叉树中一层一层的存储起来,这里我们用队列的方式来暂时存储每一层的元素(主要用于while循环时,size大小的固定),然后添加到一个一维数组中,最后以二维数组的方式就可以得到每一层的数据了

代码

class Solution {public List<List<Integer>> resList = new ArrayList<List<Integer>>();public List<List<Integer>> levelOrder(TreeNode root) {checkFun02(root);return resList;}public void checkFun02(TreeNode node) {if(node==null){return;}Queue<TreeNode> que = new LinkedList<TreeNode>();que.offer(node);while(!que.isEmpty()){List<Integer> itemList = new ArrayList<Integer>();int size = que.size();while(size>0){TreeNode tempNode=que.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);   }}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com