首页 > 其他分享 >[刷题记录Day14]Leetcode二叉树

[刷题记录Day14]Leetcode二叉树

时间:2023-08-25 23:45:32浏览次数:44  
标签:node Traverse 题目 List list Day14 二叉树 Leetcode result

No.1

题目

前序遍历

思路

  • 递归法

代码

public void Traverse(TreeNode node, List<Integer> list) {  
    if (node == null)  
        return;  
    list.add(node.val); // 中  
    Traverse(node.left, list); // 左  
    Traverse(node.right, list); // 右  
}  
  
public List<Integer> preorderTraversal(TreeNode root) {  
    List<Integer> result = new ArrayList<>();  
    Traverse(root, result);  
  
    return result;  
}

No.2

题目

中序遍历

思路

  • 递归法

代码

public void Traverse(TreeNode node, List<Integer> list) {  
    if (node == null)  
        return;  
    Traverse(node.left, list); // 左  
    list.add(node.val); // 中  
    Traverse(node.right, list); // 右  
}  
  
public List<Integer> inorderTraversal(TreeNode root) {  
    List<Integer> result = new ArrayList<>();  
    Traverse(root, result);  
  
    return result;  
}

No.3

题目

后序遍历

思路

  • 递归法

代码

public void Traverse(TreeNode node, List<Integer> list) {  
    if (node == null)  
        return;  
    Traverse(node.left, list); // 左  
    Traverse(node.right, list); // 右  
    list.add(node.val); // 中  
}  
  
public List<Integer> postorderTraversal(TreeNode root) {  
    List<Integer> result = new ArrayList<>();  
    Traverse(root, result);  
  
    return result;  
}

No.4

题目

思路

代码

No.5

题目

思路

代码

No.6

题目

思路

代码

No.7

题目

思路

代码

No.8

题目

思路

代码

No.9

题目

思路

代码

标签:node,Traverse,题目,List,list,Day14,二叉树,Leetcode,result
From: https://www.cnblogs.com/tomatoQt/p/17658208.html

相关文章

  • [刷题记录Day15]Leetcode二叉树
    No.1题目二叉树的层序遍历思路使用队列关键点:1.每进入一层,层内的节点都被处理完成2.开始遍历层内的节点前,必须先记录该层的节点数量,不能访问到下一层的节点代码publicList<List<Integer>>levelOrder(TreeNoderoot){Queue<TreeNode>queue=newLinkedList......
  • [刷题记录Day17]Leetcode二叉树
    No.1题目平衡二叉树思路递归法在遍历中比较左右子树的高度差递归分析参数:当前传入节点。返回值:以当前传入节点为根节点的树的高度那么如何标记左右子树是否差值大于1呢?可以返回-1来标记已经不符合平衡树的规则了明确终止条件:递归的过程中依然是遇到空节点了为终止,返......
  • [刷题记录Day16]Leetcode二叉树
    No.1题目二叉树的最大深度思路递归其实是后序遍历的方式代码publicintmaxDepth(TreeNoderoot){if(root==null)return0;returnMath.max(1+maxDepth(root.left),1+maxDepth(root.right));}No.2题目二叉树的最小深度思路......
  • [刷题记录Day18]Leetcode二叉树
    No.1题目找树左下角的值思路队列,层序遍历Deque既可以用作栈也可以用作队列,谨慎使用代码publicintfindBottomLeftValue(TreeNoderoot){Queue<TreeNode>queue=newLinkedList<>();queue.add(root);intresult=0;//记录最后一行第一个元素......
  • [刷题记录Day11]Leetcode
    No.1题目有效的括号思路奇数个符号一定不符合分析括号不匹配的可能性第一种情况,字符串里左方向的括号多余了,所以不匹配![[brackets0.png]]第二种情况,括号没有多余,但是括号的类型没有匹配上![[brackets1.png]]第三种情况,字符串里右方向的括号多余了,所以不匹配![[brac......
  • [刷题记录Day10]Leetcode
    No.1题目用栈实现队列思路模拟一个入栈一个出栈代码classMyQueue{privateStack<Integer>stackIn;privateStack<Integer>stackOut;publicMyQueue(){stackIn=newStack<>();stackOut=newStack<>();......
  • [刷题记录Day13]Leetcode
    No.1题目滑动窗口最大值思路编写单调队列类讲解代码classMonoQue{Deque<Integer>deque=newLinkedList<>();//弹出元素时,比较当前要弹出的值是否等于队列出口的值,相等则弹出//同时判断队列此时是否为空voidpoll(intval){......
  • [刷题记录Day8]Leetcode
    No.1题目反转字符串思路双指针,从头尾向中间遍历代码publicvoidreverseString(char[]s){ chartemp; intleft=0,right=s.length-1; while(left<right){ temp=s[left]; s[left]=s[right]; s[right]=temp; left++; right--; }}No.2......
  • [刷题记录Day9]Leetcode
    建议跳过No.1题目找出字符串中第一个匹配项的下标思路KMP代码No.2题目重复的子字符串思路KMP代码......
  • [刷题记录Day6]Leetcode哈希表
    No.1题目有效的字母异位词思路每个字符频率都相同,于是把字母表映射到长度为26的数组上代码publicbooleanisAnagram(Strings,Stringt){intlenS=s.length(),lenT=t.length();if(lenT!=lenS)returnfalse;int[]alphabet=newint[26]......