## Title description

Given a binary tree and one of its nodes, find the next node in the in-order traversal sequence and return. Note that the nodes in the tree not only include left and right child nodes, but also pointers to parent nodes.

## Ideas

I have always understood the meaning of next in this topic and where does it point? Later, after reading other people's analysis, I understood. Next points to the parent node.
The following solution is not original:
Source: Niuke.com

• Analyzing the next node of the binary tree, there are the following situations:
• 1. If the binary tree is empty, return empty;
• 2. The right child nodes exist, a pointer is provided from the right child node, the last leaf node has to find a pointer to the left along the sub-node is the next node;
node 2 is started from the assumption, `也就是说此时的中序遍历到了2这个节点。然后需要输出下一个节点`. The right child exists as 5, so start looking for his left child from 5. Then 3 is found, 3 has no left child, and 3 is returned. This means that 2 traversal in the middle order traversal, the next traversal output should be 3.
• 3. The node is not the root node. If the node is the left child of its parent node, return the parent node; otherwise, continue to traverse the parent node of its parent node, repeat the previous judgment, and return the result.
Then we traversed to 3 at this time above. Then the node is the root node, the right child is 4, and there are no other nodes, it outputs 4, and then 4 is not the root node, it returns its parent node to 3, because 3 has been traversed at this time, it continues to return to it Parent node 5.

## Code

``````/*
int val;

this.val = val;
}
}
*/
public class Solution {

{

if(pNode == null) return null;
if(pNode.right == null){

//如果此时的结点没有右节点
res = pNode;
while(res.next != null && res.next.right == res){

//如果此时的节点不是作为自己的父节点的右节点，就一直向上遍历
res = res.next;
}
return res.next;
}
//如果此时的结点存在右节点，就一直沿着遍历其左结点，知道左节点为空，此时的节点就是下一个节点
res = pNode.right;
while(res.left != null){

res = res.left;
}
return res;
}
}
``````

### Guess you like

Origin blog.csdn.net/H1517043456/article/details/107514466
Recommended
Ranking
Daily