摘要:
解题思路:前序遍历,然后将每个非空节点的左右子树交换(java要创建tmp变量交换),最后返回交换后的root;或者也可以创建一个新的二叉树节点然后赋值(比较麻烦) class Solution { public TreeNode invertTree(TreeNode root) { if (ro 阅读全文
摘要:
解题思路:暴力解法直接遍历一遍,但是最后两个点超时;解决方法用单调栈的方式进行解决,栈存储的是下标,当某一天的温度值比栈顶的温度高的时候,就把栈顶元素弹出,并且在对应answer填入两者下标差值,然后继续对比,直到空栈或者栈顶元素比该天温度高,将该下标存入栈中,然后继续遍历。 暴力解法: class 阅读全文
摘要:
解题思路:找祖先从底向上递归后序遍历查找,遇到p,q或者空节点就直接返回对应值,当某个节点的左子树、右子树都返回了值,那么就说明该节点就是最近祖先节点,然后把该节点的值继续往上传,直到根节点返回结果。 /** * Definition for a binary tree node. * public 阅读全文
摘要:
解题思路:如果两个链表在某一点相交,那么那一点之后的node也都会相同,长度也相同。所以,我们先遍历获取对应每一条链表的长度,然后让长的链表先走两个链表长度之差的距离,然后再同时起步,每个节点进行对比,能不能找到相同的。 /** * Definition for singly-linked list 阅读全文