首页 > 其他分享 >LeetCode 145. 二叉树的后序遍历

LeetCode 145. 二叉树的后序遍历

时间:2022-11-04 20:00:14浏览次数:52  
标签:遍历 TreeNode val list postorderTraversal 145 二叉树 root LeetCode



问题描述

给定一个二叉树,返回它的 后序 遍历。


示例:

LeetCode 145. 二叉树的后序遍历_java



进阶: 递归算法很简单,你可以通过迭代算法完成吗?

题目代码

/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public List<Integer> postorderTraversal(TreeNode root) {
}
}

思路解析

首先需要了解前序,中序,后序遍历的方法.
​​​前序遍历(先序遍历):​​​根结点→左子树→右子树
​​​中序遍历:​​​左子树→根结点→右子树
​​​后序遍历​​左子树→右子树→根结点

也可以这样理解,前中后(根)遍历.即根结点的访问位置,​​前序就是先访问根结点,后依次左右.中序就是根结点再中间位置访问​

LeetCode 145. 二叉树的后序遍历_结点_02


代码演示

class Solution {
List<Integer> list = new ArrayList<Integer>();
public List<Integer> postorderTraversal(TreeNode root) {
if (root != null) {
postorderTraversal(root.left);
postorderTraversal(root.right);
list.add(root.val);
}
return list;
}
}

扩展

当要求写前序遍历的代码时,只需更改一个位置即可.
​​​list.add(root.val);​

前序的话
if (root != null) {
list.add(root.val);
postorderTraversal(root.left);
postorderTraversal(root.right);
}
中序
if (root != null) {
postorderTraversal(root.left);
list.add(root.val);
postorderTraversal(root.right);
}


标签:遍历,TreeNode,val,list,postorderTraversal,145,二叉树,root,LeetCode
From: https://blog.51cto.com/u_14233037/5824734

相关文章

  • leetcode-2283-easy
    CheckifNumberHasEqualDigitCountandDigitValueYouaregivena0-indexedstringnumoflengthnconsistingofdigits.Returntrueifforeveryindexi......
  • leetcode-754-medium
    ReachaNumberYouarestandingatposition0onaninfinitenumberline.Thereisadestinationatpositiontarget.YoucanmakesomenumberofmovesnumMove......
  • leetcode-657-easy
    RobotReturntoOriginThereisarobotstartingattheposition(0,0),theorigin,ona2Dplane.Givenasequenceofitsmoves,judgeifthisrobotendsup......
  • leetcode-1417-easy
    ReformatTheStringYouaregivenanalphanumericstrings.(AlphanumericstringisastringconsistingoflowercaseEnglishlettersanddigits).Youhaveto......
  • leetcode-771-easy
    JewelsandStonesYou'regivenstringsjewelsrepresentingthetypesofstonesthatarejewels,andstonesrepresentingthestonesyouhave.Eachcharacterin......
  • leetcode-1200-easy
    MinimumAbsoluteDifferenceGivenanarrayofdistinctintegersarr,findallpairsofelementswiththeminimumabsolutedifferenceofanytwoelements.Retu......
  • leetcode-1984-easy
    MinimumDifferenceBetweenHighestandLowestofKScoresYouaregivena0-indexedintegerarraynums,wherenums[i]representsthescoreoftheithstudent.......
  • leetcode 160. 相交链表 js 实现
    给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。图示两个链表在节点 c1 开始相交: ......
  • leetcode-136. 只出现一次的数字
    题目描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明说明:你的算法应该具有线性时间复杂度。你可以不......
  • LeetCode刷题记录.Day5
    反转链表题目链接206.反转链表-力扣(LeetCode)classSolution{public:ListNode*reverseList(ListNode*head){ListNode*temp;ListNode*c......